SpareNet Servers Advertising & Link Exchange

اطلاعیه

بستن
هیچ اطلاعیه ای هنوز ایجاد نشده است .

اتصال به دیتابیس با پایتون

بستن
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
نوشته‌های جدید

  • اتصال به دیتابیس با پایتون

    سلام دوستان وقت بخیر

    من یه دیتابیس دارم که حاوی اطلاعات می باشد

    من میخوام به زبان پایتون یه برنامه ای بنویسم

    که با وارد کردن مثلا شماره, همه ای مشخصات مربوط به شماره رو مشخص کنه

    خب باید چیکار کنم ؟؟

  • #2
    اولا نوع دیتابیست از چه نوع هست

    دوم میتونی از این کد استفاده کنی

    کد:
    #Code By E1.Coders
    #Copyright By E1.Coders
    import sqlite3
    conn = sqlite3.connect("mydatabase.db")
    cursor = conn.cursor()
    number = input("Enter a number: ")
    sql = "SELECT * FROM users WHERE number = ?"
    cursor.execute(sql, (number,))
    results = cursor.fetchall()
    if results:
        for row in results:
            print(f"Number: {row[0]}")
            print(f"Name: {row[1]}")
            print(f"Address: {row[2]}")
            print()
    else:
        print("No record found with that number")
    conn.close()
    [align=center][align=right]When danger lurks in unknown waters, we are there to help you swim[/align][/align]

    نظر


    • #3
      ممنون بابت پاسخگویی شما

      دیتا رو استخراج کردم در حال حاضر در یک فایل txt ازش استفاده میکنم

      شامل شماره تماس و نام و مشخصات مکانی می باشد

      حالا من میخوام یه کد نویسی انجام بشه که با وارد کردن شماره مشخصات رو بهم بده

      حجم دیتا 5 گیگ هست

      مثلا این کد با وارد کردن ایدی مشخصات صفحه ای اینستا رو میده / من میخوام با وارد کردن شماره مشخصات رو بهم بده
      #!/bin/env python3

      import requests
      import random
      import json
      import sys
      from local import *

      resp_js = None
      is_private = False
      total_uploads = 12

      def proxy_session():
      session = requests.session()
      session.proxies = {
      'http': 'socks5://127.0.0.1:9050',
      'https': 'socks5://127.0.0.1:9050'
      }
      return session

      def get_page(usrname):
      global resp_js
      session = requests.session()
      session.headers = {'User-Agent': random.choice(useragent)}
      resp_js = session.get('https://www.instagram.com/'+usrname+'/?__a=1').text
      return resp_js

      def exinfo():

      def xprint(xdict, text):
      if xdict != {}:
      print(f"{su} {re}most used %s :" % text)
      i = 0
      for key, val in xdict.items():
      if len(mail) == 1:
      if key in mail[0]:
      continue
      print(f" {gr}%s : {wh}%s" % (key, val))
      i += 1
      if i > 4:
      break
      print()
      else:
      pass

      raw = find(resp_js)

      mail = raw['email']
      tags = sort_list(raw['tags'])
      ment = sort_list(raw['mention'])

      if mail != []:
      if len(mail) == 1:
      print(f"{su} {re}email found : \n{gr} %s" % mail[0])
      print()
      else:
      print(f"{su} {re}email found : \n{gr} ")
      for x in range(len(mail)):
      print(mail[x])
      print()

      xprint(tags, "tags")
      xprint(ment, "mentions")

      def user_info(usrname):

      global total_uploads, is_private

      resp_js = get_page(usrname)
      js = json.loads(resp_js)
      js = js['graphql']['user']

      if js['is_private'] != False:
      is_private = True

      if js['edge_owner_to_timeline_media']['count'] > 12:
      pass
      else:
      total_uploads = js['edge_owner_to_timeline_media']['count']

      usrinfo = {
      'username': js['username'],
      'user id': js['id'],
      'name': js['full_name'],
      'followers': js['edge_followed_by']['count'],
      'following': js['edge_follow']['count'],
      'posts img': js['edge_owner_to_timeline_media']['count'],
      'posts vid': js['edge_felix_video_timeline']['count'],
      'reels': js['highlight_reel_count'],
      'bio': js['biography'].replace('\n', ', '),
      'external url': js['external_url'],
      'private': js['is_private'],
      'verified': js['is_verified'],
      'profile img': urlshortner(js['profile_pic_url_hd']),
      'business account': js['is_business_account'],
      #'connected to fb': js['connected_fb_page'], -- requires login
      'joined recently': js['is_joined_recently'],
      'business category': js['business_category_name'],
      'category': js['category_enum'],
      'has guides': js['has_guides'],
      }

      banner()

      print(f"{su}{re} user info")
      for key, val in usrinfo.items():
      print(f" {gr}%s : {wh}%s" % (key, val))

      print("")

      exinfo()

      def highlight_post_info(i):

      postinfo = {}
      total_child = 0
      child_img_list = []

      x = json.loads(resp_js)
      js = x['graphql']['user']['edge_owner_to_timeline_media']['edges'][i]['node']

      # this info will be same on evry post
      info = {
      'comments': js['edge_media_to_comment']['count'],
      'comment disable': js['comments_disabled'],
      'timestamp': js['taken_at_timestamp'],
      'likes': js['edge_liked_by']['count'],
      'location': js['location'],
      }

      # if image dosen't have caption this key dosen't exist instead of null
      try:
      info['caption'] = js['edge_media_to_caption']['edges'][0]['node']['text']
      except IndexError:
      pass

      # if uploder has multiple images / vid in single post get info how much edges are
      if 'edge_sidecar_to_children' in js:
      total_child = len(js['edge_sidecar_to_children']['edges'])

      for child in range(total_child):
      js = x['graphql']['user']['edge_owner_to_timeline_media']['edges'][i]['node']['edge_sidecar_to_children']['edges'][child]['node']
      img_info = {
      'typename': js['__typename'],
      'id': js['id'],
      'shortcode': js['shortcode'],
      'dimensions': str(js['dimensions']['height'] + js['dimensions']['width']),
      'image url' : js['display_url'],
      'fact check overall': js['fact_check_overall_rating'],
      'fact check': js['fact_check_information'],
      'gating info': js['gating_info'],
      'media overlay info': js['media_overlay_info'],
      'is_video': js['is_video'],
      'accessibility': js['accessibility_caption']
      }

      child_img_list.append(img_info)

      postinfo['imgs'] = child_img_list
      postinfo['info'] = info

      else:
      info = {
      'comments': js['edge_media_to_comment']['count'],
      'comment disable': js['comments_disabled'],
      'timestamp': js['taken_at_timestamp'],
      'likes': js['edge_liked_by']['count'],
      'location': js['location'],
      }

      try:
      info['caption'] = js['edge_media_to_caption']['edges'][0]['node']['text']
      except IndexError:
      pass

      img_info = {
      'typename': js['__typename'],
      'id': js['id'],
      'shortcode': js['shortcode'],
      'dimensions': str(js['dimensions']['height'] + js['dimensions']['width']),
      'image url' : js['display_url'],
      'fact check overall': js['fact_check_overall_rating'],
      'fact check': js['fact_check_information'],
      'gating info': js['gating_info'],
      'media overlay info': js['media_overlay_info'],
      'is_video': js['is_video'],
      'accessibility': js['accessibility_caption']
      }

      child_img_list.append(img_info)

      postinfo['imgs'] = child_img_list
      postinfo['info'] = info

      return postinfo

      def post_info():

      if is_private != False:
      print(f"{fa} {gr}cannot use -p for private accounts !\n")
      sys.exit(1)

      posts = []

      for x in range(total_uploads):
      posts.append(highlight_post_info(x))

      for x in range(len(posts)):
      # get 1 item from post list
      print(f"{su}{re} post %s :" % x)
      for key, val in posts[x].items():
      if key == 'imgs':
      # how many child imgs post has
      postlen = len(val)
      # loop over all child img
      print(f"{su}{re} contains %s media" % postlen)
      for y in range(postlen):
      # print k,v of all child img in loop
      for xkey, xval in val[y].items():
      print(f" {gr}%s : {wh}%s" % (xkey, xval))
      if key == 'info':
      print(f"{su}{re} info :")
      for key, val in val.items():
      print(f" {gr}%s : {wh}%s" % (key, val))
      print("")​
      ویرایش توسط n30od4y : https://www.iranhack.com/forum/member/9190-n30od4y در ساعت 09-04-2023, 10:30 AM

      نظر


      • #4
        نوشته اصلی توسط n30od4y نمایش پست ها
        ممنون بابت پاسخگویی شما

        دیتا رو استخراج کردم در حال حاضر در یک فایل txt ازش استفاده میکنم

        شامل شماره تماس و نام و مشخصات مکانی می باشد

        حالا من میخوام یه کد نویسی انجام بشه که با وارد کردن شماره مشخصات رو بهم بده

        حجم دیتا 5 گیگ هست

        مثلا این کد با وارد کردن ایدی مشخصات صفحه ای اینستا رو میده / من میخوام با وارد کردن شماره مشخصات رو بهم بده

        باید ساختار فایل و ... ببینم تا برات کد بزنم

        برام یه جا فایل اپلود کن و تو خصوصی لینکش بزار تا برات کدش بنویسم
        ویرایش توسط E1.Coders : https://www.iranhack.com/forum/member/2699-e1-coders در ساعت 09-10-2023, 07:57 PM
        [align=center][align=right]When danger lurks in unknown waters, we are there to help you swim[/align][/align]

        نظر


        • #5
          فرمت فایل اصلی m d b هست
          فایل رو نمیتونم اشتراک گذاری کنم

          نظر


          • #6
            درود

            شما باید حداقل یه زبان برنامه نویسی بلد باشی که بتونی ابزار مورد نیازت رو بنویسی

            نظر


            • #7
              نوشته اصلی توسط n30od4y نمایش پست ها
              فرمت فایل اصلی m d b هست
              فایل رو نمیتونم اشتراک گذاری کنم
              این دیتابیس Access است، برای اتصال به پایتون باید از pyodbc استفاده کنید.
              نمونه کد :

              کد:
              import csv, pyodbc
              
              # set up some constants
              MDB = 'c:/path/to/my.mdb'
              DRV = '{Microsoft Access Driver (*.mdb)}'
              PWD = 'pw'
              
              # connect to db
              con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
              cur = con.cursor()
              
              # run a query and get the results
              SQL = 'SELECT * FROM mytable;' # your query goes here
              rows = cur.execute(SQL).fetchall()
              cur.close()
              con.close()
              
              # you could change the mode from 'w' to 'a' (append) for any subsequent queries
              with open('mytable.csv', 'w') as fou:
                  csv_writer = csv.writer(fou) # default field-delimiter is ","
                  csv_writer.writerows(rows)​

              نظر


              • #8
                نوشته اصلی توسط SH0CK نمایش پست ها

                این دیتابیس Access است، برای اتصال به پایتون باید از pyodbc استفاده کنید.
                نمونه کد :

                کد:
                import csv, pyodbc
                
                # set up some constants
                MDB = 'c:/path/to/my.mdb'
                DRV = '{Microsoft Access Driver (*.mdb)}'
                PWD = 'pw'
                
                # connect to db
                con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
                cur = con.cursor()
                
                # run a query and get the results
                SQL = 'SELECT * FROM mytable;' # your query goes here
                rows = cur.execute(SQL).fetchall()
                cur.close()
                con.close()
                
                # you could change the mode from 'w' to 'a' (append) for any subsequent queries
                with open('mytable.csv', 'w') as fou:
                csv_writer = csv.writer(fou) # default field-delimiter is ","
                csv_writer.writerows(rows)​
                سلام دوست من , ممنونم از راهنمایتون

                الان من دیتابیس هام رو داخل این کد قرار بدم بعد
                بعد با وارد کردن شماره مشخصات رو بهم میده ؟

                نظر

                صبر کنید ..
                X