世界のある工商雲の戦いの自動カードシステム


文書ディレクトリ
  • 前言
  • 一、python接続打カードウェブサイト自動ロット打カード
  • を実現する
  • 1.コード
  • 2.重要部分分析
  • 二、タイミング起動カード打ちプログラム
  • 1、テンセントサーバー
  • 2、linux+crontabを使用してタイミング起動項目
  • を追加
  • 三、毎日メールを成功に送る
  • 1、メール送信機能
  • 2、結合打卡、完成毎日打卡成功通知
  • 三、グラフィックインターフェースの設計
  • 最後に書いてあります:
  • 前言
    试験周间は复习したくなくて、pythonを独学して、1つの午后を见て少しも感じないで、そこで実际に操业して、云の戦いの自动的なカードを打つことができるかどうかを试みて、午前2时ごろまでpythonの大量のカードを使うことに成功して、それから绝えず机能を改善して、大体ユーザーの添加の毎日の自动的な大量のカードを打つことと毎日のカードを打つことに成功した后の情报しかし、まだ多くの不足点が改善されなければならない.
    一、pythonはカードを打つウェブサイトに接続して自動ロットカードを打つことを実現する
    1.コード
    コードは次のとおりです(例).
    import requests
    import time
    url='https://nco.zjgsu.edu.cn/genqrcode/2019032'
    file = open("C:/Users/Administrator/Desktop/python  /spide/helloSpide.txt", "r")
    file_read = file.readlines()#      (     )
    lenthOfFile = len(file_read)#    
    for i in range(0, lenthOfFile, 4):#   4              5
        #    for      
        file_read_name = file_read[i]#     (  )
        file_read_name = file_read_name.strip()#             
        file_read_pass = file_read[i+1]#    
        file_read_pass = file_read_pass.strip()
        file_read_first_location = file_read[i+2]#    
        file_read_first_location = file_read_first_location.strip()
        file_read_last_location = file_read[i+3]#    
        file_read_last_location = file_read_last_location.strip()
        #          
        #         
        myHeaders_1 = {
         
            'User-Agent': 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02 '#                            (      )
        }
        url = 'https://nco.zjgsu.edu.cn/genqrcode/2019032'
        r3 = requests.post(url, headers=myHeaders_1)  #  https://nco.zjgsu.edu.cn/genqrcode/2019032    (      )
    
        yourLocal1 = file_read_first_location  #           (        )
        yourLocal2 = file_read_last_location  #       
        myHeaders_2 = {
         
            'Upgrade-Insecure-Requests': '1',
            'Content-Type': 'application/x-www-form-urlencoded',
            'Cookie': 'zjgsusessionsid=s%3AGSYaaVwF_2pedsizsHYTYSY64hVl3vL_.NMnLf1bV1PJSAS%2FeZXUkcyPkFpBq%2BcMVQYq4XPHXAAU; _ncov_uuid=a59e0ac8-da06-4fb1-83d8-000976c317a9; _ncov_username=1910080117; _ncov_psswd=09187X',
            'User-Agent': 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02 '
            
        }
        myHeaders_2['Cookie'] = r3.headers['set-cookie']#    cookie        (  cookie   )
        payload = {
         
            'name': ' ', 'psswd': ' '
        }
        payload['name'] = file_read_name#  post  
        payload['psswd'] = file_read_pass#  post  
        url = 'https://nco.zjgsu.edu.cn/login'
        r=requests.post(url, data=payload, headers=myHeaders_2)#  
        # r.encoding='utf-8'
        print(r.text)
        print(r.headers)
        time.sleep(10)  #            
    
        myHeaders_3 = {
         
            'Upgrade-Insecure-Requests': '1',
            'Content-Type': 'application/x-www-form-urlencoded',
            'Cookie': 'zjgsusessionsid=s%3AOIlBmUda3tnT-fWds6uWEKKADgTt3IAd.zQ1LcseRzDNFPv5EU1AlkyyWeSMz6424x6HK8cbov8Q; _ncov_uuid=03d31c9b-696f-4429-a0ca-6e2b7a2e10ce; _ncov_username=1910080117; _ncov_psswd=09187X',
            'User-Agent': 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02 '
            
        }
        myHeaders_3['Cookie'] = r.headers['set-cookie']#  cookie
        payload2 = {
         
            'uuid': 'a59e0ac8-da06-4fb1-83d8-000976c317a9',
            'locationInfo': '%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82',
            'currentResd': '%E6%B5%99%E6%B1%9F%E7%9C%81%E6%B8%A9%E5%B7%9E%E5%B8%82%E9%BE%99%E6%B8%AF%E5%B8%82%E4%B8%B4%E6%B8%AF%E8%B7%AF862%E5%8F%B7',
            'fromHbToZjDate': '',
            'fromHbToZj': 'C',
            'fromWtToHzDate': '',
            'fromWtToHz': 'B',
            'meetDate': '',
            'meetCase': 'C',
            'travelDate': '',
            'travelCase': 'D',
            'medObsvReason': '',
            'medObsv': 'B',
            'belowCaseDesc': '',
            'belowCase': 'D',
            'temperature': '',
            'notApplyReason': '',
            'hzQRCode': 'A',
            'specialDesc': ''
        }
        payload2['locationInfo'] = yourLocal1  #    
        payload2['currentResd'] = yourLocal2  #    
        url2 = 'https://nco.zjgsu.edu.cn/'
        r2 = requests.post(url2, data=payload2, headers=myHeaders_2)#    
        # r.encoding='utf-8'
        print(r2.text)
        time.sleep(5)  #                     
        
    

    2.重要部分分析
    コードは次のとおりです(例).
     r=requests.post(url, data=payload, headers=myHeaders_2)
    

    前のコードはすべてこの部分のコードをめぐって展開されており、urlもpayloadもheadersも、適切に構築すれば所望の機能を実現することができる.例えば、前は携帯電話側でカードインタフェースにログインするしかないので、headersのuser-agentをアンドロイドのuser-agentに変更すればよい.
    myHeaders_1['User-Agent'] = 'xxxxxxxx'
    

    二、タイミングでカードを打つプログラムを起動する
    1、テンセントサーバー
    明らかに私のパソコンはずっとつけられないので、ルームメイトとお金を使ってテンセントサーバーを買いました.テンセントクラウドサーバー(Cloud Virtual Machine,CVM)は、クラウド上で拡張可能なコンピューティングサービスを提供しています.[1]テンセントクラウドはアジア太平洋クラウドコンピューティング市場で4位で、初めてグーグルを上回った.
    2、linux+crontabを使用してタイミング起動項目を追加する
    crontabが持参したかどうか忘れましたが、インストールする場合は
    yum install vixie-cron
    yum install crontabs
    

    その後、タイミング起動項目を追加しますが、その前にcrontabの使用を熟知してcrontabを開きます.
    crontab -e
    

    viエディタモードに入り、新しい行に目的のタイミングタスクを追加しますが、cron式の構文を熟知しておく必要があります.例えば、毎日0時に起動します.
    0 0 * * *     >>       
    

    私のcrontabの内容は:
    2 0 * * * python /root/ShareFile/myFirstSpide.py >>/root/ShareFile/EverDay.txt
    

    毎日0:02 pythonを使ってmyFirstSpideを開くことを意味します.py実行記録をEverDayに書き込む.txt
    三、毎日メールを成功に送る
    1、メール送信機能
    ここではsmtpを利用して送信します.smtpを使用する場合は、メールボックスの設定でこの機能をオンにし、動的パスワードを取得する必要があります.
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    # from email.mime.image import MIMEImage
    smtp = smtplib.SMTP()
    smtp.connect('smtp.163.com', 25)#    163     qq    smtp.qq.com
    username = 'xxxxxxxx'#     
    password = 'xxxxxxxx'#      (              163   smtp    )
    smtp.login(username, password)
    sender = 'xxxxxxx'#      
    receiver = 'xxxxxxx'#     
    #        
    subject = 'pythonmailtest'#    
    msg = MIMEMultipart('mixed') 
    msg['Subject'] = subject
    msg['From'] = '[email protected] '
    msg['To'] = '[email protected]'
    text = 'Hello World'#    
    text_plain = MIMEText(text, 'plain', 'utf-8')#    
    msg.attach(text_plain)
    smtp.sendmail(sender, receiver, msg.as_string())
    smtp.quit()
    

    2、カードを打つことを結び付けて、毎日カードを打つ成功の通知を完成します
    import requests
    import time
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    url='https://nco.zjgsu.edu.cn/genqrcode/2019032'
    
    #      
    def sentSecessMsg(receiver):
        smtp = smtplib.SMTP()
        smtp.connect('smtp.qq.com', 25)
        username = 'xxxxxxx'
        password = 'xxxxxxx'
        smtp.login(username, password)
        sender = 'xxxxxxx'
        #        
        subject = '   :      '
        msg = MIMEMultipart('mixed') 
        msg['Subject'] = subject
        msg['From'] = '[email protected] '
        msg['To'] = receiver
        text = '    '
        text_plain = MIMEText(text, 'plain', 'utf-8')
        msg.attach(text_plain)
        smtp.sendmail(sender, receiver, msg.as_string())
        smtp.quit()
    
    
    file = open("C:/Users/Administrator/Desktop/python  /spide/helloSpide.txt", "r")
    file_read = file.readlines()
    lenthOfFile = len(file_read)
    for i in range(0, lenthOfFile, 5):
        #    for      
        file_read_name = file_read[i]
        file_read_name = file_read_name.strip()
        file_read_pass = file_read[i+1]
        file_read_pass = file_read_pass.strip()
        file_read_first_location = file_read[i+2]
        file_read_first_location = file_read_first_location.strip()
        file_read_last_location = file_read[i+3]
        file_read_last_location = file_read_last_location.strip()
        #          
        #         
        myHeaders_1 = {
         
            'User-Agent': 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02 '#                   
        }
        url = 'https://nco.zjgsu.edu.cn/genqrcode/2019032'
        r3 = requests.post(url, headers=myHeaders_1)  #  https://nco.zjgsu.edu.cn/genqrcode/2019032    
    
        yourLocal1 = file_read_first_location  #           (        )
        yourLocal2 = file_read_last_location  #       
        myHeaders_2 = {
         
            'Upgrade-Insecure-Requests': '1',
            'Content-Type': 'application/x-www-form-urlencoded',
            'Cookie': 'zjgsusessionsid=s%3AGSYaaVwF_2pedsizsHYTYSY64hVl3vL_.NMnLf1bV1PJSAS%2FeZXUkcyPkFpBq%2BcMVQYq4XPHXAAU; _ncov_uuid=a59e0ac8-da06-4fb1-83d8-000976c317a9; _ncov_username=1910080117; _ncov_psswd=09187X',
            'User-Agent': 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02 '
            
        }
        myHeaders_2['Cookie'] = r3.headers['set-cookie']#    cookie        
        payload = {
         
            'name': ' ', 'psswd': ' '
        }
        payload['name'] = file_read_name
        payload['psswd'] = file_read_pass
        url = 'https://nco.zjgsu.edu.cn/login'
        r=requests.post(url, data=payload, headers=myHeaders_2)
        # r.encoding='utf-8'
        print(r.text)
        print(r.headers)
        # print(r.headers['Url-Hash'])
        # https://blog.csdn.net/sinat_32258909/article/details/52404305
        time.sleep(10)  #         
    
        myHeaders_3 = {
         
            'Upgrade-Insecure-Requests': '1',
            'Content-Type': 'application/x-www-form-urlencoded',
            'Cookie': 'zjgsusessionsid=s%3AOIlBmUda3tnT-fWds6uWEKKADgTt3IAd.zQ1LcseRzDNFPv5EU1AlkyyWeSMz6424x6HK8cbov8Q; _ncov_uuid=03d31c9b-696f-4429-a0ca-6e2b7a2e10ce; _ncov_username=1910080117; _ncov_psswd=09187X',
            'User-Agent': 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02 '
            
        }
        myHeaders_3['Cookie'] = r.headers['set-cookie']
        payload2 = {
         
            'uuid': 'a59e0ac8-da06-4fb1-83d8-000976c317a9',
            'locationInfo': '%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82',
            'currentResd': '%E6%B5%99%E6%B1%9F%E7%9C%81%E6%B8%A9%E5%B7%9E%E5%B8%82%E9%BE%99%E6%B8%AF%E5%B8%82%E4%B8%B4%E6%B8%AF%E8%B7%AF862%E5%8F%B7',
            'fromHbToZjDate': '',
            'fromHbToZj': 'C',
            'fromWtToHzDate': '',
            'fromWtToHz': 'B',
            'meetDate': '',
            'meetCase': 'C',
            'travelDate': '',
            'travelCase': 'D',
            'medObsvReason': '',
            'medObsv': 'B',
            'belowCaseDesc': '',
            'belowCase': 'D',
            'temperature': '',
            'notApplyReason': '',
            'hzQRCode': 'A',
            'specialDesc': ''
        }
        payload2['locationInfo'] = yourLocal1  #    
        payload2['currentResd'] = yourLocal2  #    
        url2 = 'https://nco.zjgsu.edu.cn/'
        r2 = requests.post(url2, data=payload2, headers=myHeaders_2)
        # r.encoding='utf-8'
        print(r2.text)
        time.sleep(5)  #                     
        #       
        MailAddress = file_read[i+4]
        MailAddress = MailAddress.strip()
        sentSecessMsg(MailAddress)
        
    

    三、図形化インタフェースの設計
    ここはあまり言わないで、自分でゆっくり描いてください.
    import tkinter as tk
    import tkinter.messagebox
    from PIL import Image
    from PIL import ImageTk
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    import os
    #    
    window = tk.Tk()
    window.title("       ")  #    
    window.geometry('500x300')  #  
    #    
    
    # photo = tk.PhotoImage(file='C:/Users/Administrator/Desktop/python  /spide/1.png')
    # thePhotoLabel = tk.Label(window, image=photo,compound=tk.CENTER)
    # thePhotoLabel.pack()
    # def writeToText():
    #     myFile=open("C:/Users/Administrator/Desktop/python  /spide/helloSpide.txt",)
    
    # def get_image(filename,width,height):
    #     im = Image.open(filename).resize((width,height))
    #     return ImageTk.PhotoImage(im)
    # #    
    # Dpath = os.path.abspath('.')
    # canvas_root = tkinter.Canvas(window, width=500,height=300)
    # im_root = get_image(Dpath+'\\picture\\k.png', 800,600)
    # canvas_root.create_image(400,300, image=im_root)
    # canvas_root.pack()
    
    tk.Label(window, text='   :', font=('    ', 14)).place(x=90, y=20)
    tk.Label(window, text='     :', font=('    ', 14)).place(x=90, y=60)
    tk.Label(window, text='    :', font=('    ', 14)).place(x=70, y=100)
    tk.Label(window, text='   :', font=('    ', 14)).place(x=90, y=140)
    tk.Label(window, text='     :', font=('    ', 14)).place(x=90, y=180)
    
    userNameEntry = tk.Entry(window)
    userPasswordEntry = tk.Entry(window, show='*')
    userNameEntry.place(x=170, y=25)
    userPasswordEntry.place(x=170, y=65)
    
    userFirstAddress = tk.Entry(window)
    userLastAddress = tk.Entry(window)
    userFirstAddress.place(x=170, y=105)
    userLastAddress.place(x=170, y=145)
    
    EmailAddress = tk.Entry(window)
    EmailAddress.place(x=170, y=185)
    
    
    
    def writeInText():
        # myFile = open('C:/Users/Administrator/Desktop/python  /spide/helloSpide.txt', 'a+')
        # myFile.write('
    '+userNameEntry.get()+'
    ')
    # myFile.write(userPasswordEntry.get()+'
    ')
    # myFile.write(userFirstAddress.get()+'
    ')
    # myFile.write(userLastAddress.get()) # myFile.close() if userNameEntry.get()=='' or userPasswordEntry.get()=='' or userFirstAddress.get()=='' or userLastAddress.get()=='' or EmailAddress.get()=='': tkinter.messagebox.showinfo(title=' ', message=' ') else: AllInfo = userNameEntry.get()+'
    '
    +userPasswordEntry.get()+'
    '
    +userFirstAddress.get()+'
    '
    +userLastAddress.get()+'
    '
    +EmailAddress.get() smtp = smtplib.SMTP() smtp.connect('smtp.qq.com', 25) username = '[email protected]' password = 'xxxxxxxx' smtp.login(username, password) sender = '[email protected]' receiver = '[email protected]' # subject = ' ' msg = MIMEMultipart('mixed') msg['Subject'] = subject msg['From'] = '[email protected] ' msg['To'] = '[email protected]' # msg['Date'] = '2021-1-23' text = AllInfo text_plain = MIMEText(text, 'plain', 'utf-8') msg.attach(text_plain) # text = 'Hello World' # text_plain = MIMEText(text, 'plain', 'utf-8') smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit() tkinter.messagebox.showinfo(title=' ', message=' ') def clearText(): # myFile = open('C:/Users/Administrator/Desktop/python /spide/new.txt','w') # myFile.close() tkinter.messagebox.showinfo(title=' ', message=' , , MyNameIsChenWenHan') sendTotextButton = tk.Button(window, text=' ', width=20, height=2, command=writeInText) sendTotextButton.place(x=100, y=230) tkinter.messagebox.showinfo(title=' ', message=' : ') clearTextButton = tk.Button(window, text=' ', width=20, height=2, command=clearText) clearTextButton.place(x=320, y=230) window.mainloop()

    最後に書きます.
    多くの不足があり、例えば資料はtxtの中に存在し、顧客情報の伝達はメールを通じて行われている.実はデータベースでやったはずですが、时間がなくて、データベースの接続コードを添付したくなくて、縁のある人にやってほしいです.
    import pymysql
     
    #        
    db = pymysql.connect(host="192.168.xxx.xxx",user="xxxx",password="xxxxx",database="xxxxxxx")
    cursor = db.cursor()
    cursor.execute("SELECT VERSION()")
    data = cursor.fetchone()
     
    print ("Database version : %s " % data)
     
    #        
    db.close()