簡體   English   中英

通過 python 請求檢查登錄是否正確

[英]check if login was correct with python requests

我一直在開發一個程序,它可以讓你登錄到不同的網頁,並告訴你登錄是否成功。 它的工作原理 1.登錄到您知道存在且正確的帳戶並將響應文本復制到文件中,2.登錄到您知道不起作用的帳戶並執行相同的操作。 然后,當您嘗試登錄到該 web 頁面時,程序會將響應與先前保存的響應進行比較並找到相似之處。 如果它發現與正確的登錄文本有更多相似之處,這意味着它成功,如果不是它沒有。 但這似乎不起作用,我不知道為什么。 我認為這是因為用於比較響應的機制,但我不確定。 我將代碼留在這里。 感謝您的任何回答!

import requests

def checkStatus(response):     #we check if the response let us login by comparing it to previous responses. This algorythm should be able to work for every webpage
    check1 = 0
    check2 = 0
    
    file1 = open("wronglogin.txt", "r")
    file2 = open("correctlogin.txt", "r")

    i = 0
    
    for line in response:
        try:
            if file2.read(i) == line:
                check2 += 1
            i+=1
        except:
            break

    i = 0

    for line in response:
        try:
            if file1.read(i) == line:
                check1 += 1
            i+=1
        except:
            break
    print(check1)
    print(check2)
    if check1 < check2:
        return True
    else:
        return False

url = "https://twitter.com/explore"
username = "your_username"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}

password = "your_password"
form_data = { "username":str(username), "password":str(password) }

s = requests.Session()

response = s.post(url, headers = headers, data = form_data)

print(response.text)

if checkStatus(response.text) == True:
    print(form_data["password"])

在進一步檢查代碼后,我發現它不是在逐行比較我得到的響應內容,而是逐位比較,而是將文件的內容作為一行讀取。 當然這意味着它不起作用,所以我建議先將要檢查的響應內容保存在文件中,以便逐行讀取。 但是,您正在搜索的信息,又名。 您是否正確登錄的信息可能不在內容中,而是在標題中,cookies 等。為了檢查所有這些因素,我發現了一個小技巧。 就像使用數組一樣,您實際上可以創建一個 for 循環來檢查它可能具有的所有變量。 這看起來像這樣:

import requests

url = "https://twitter.com/explore"
username = "your_username"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36      (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
password = "your_password"
form_data = { "username":str(username), "password":str(password) }
Session = requests.session()
response = Session.post(url, data=data, headers=headers)
for var in response:
    print(var)

var 將是存儲在響應中的數據。 我不是 100% 確定它是否是所有數據:/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM