[英]Logging Into Website Using Python Requests With Sessions
我正在查看一個網站並正在收集 cookie 的令牌,但我仍然沒有獲得登錄狀態。
這是我的代碼:
headers = {'Referer': 'https://www..com/accounts/login/'}
s = requests.Session()
# Get cookie
s.get('https://www..com/accounts/login/')
csrftoken = s.cookies['csrftoken']
payload = {
'id_username': 'my_username',
'id_password': 'my_password',
'csrfmiddlewaretoken': csrftoken
}
p = s.post('https://www..com/accounts/login/', data=payload, headers=headers)
print(p.text)
我在打印 p.text 時沒有看到明顯的錯誤,但是,打印的 HTML 仍然顯示“登錄”而不是我的用戶名,這是我使用瀏覽器登錄時發生的情況。
你能看出我可能遺漏了什么嗎? 我的想法是 csrf 令牌在登錄后再次重置,但是當它在登錄調用中傳遞時如何捕獲它?
謝謝你。
在這里領取賞金:P
你的代碼很好。 甚至referer-header的格式也很好。
但這就是您的有效負載的外觀:
payload = {
'username': 'my_username',
'password': 'my_password',
'csrfmiddlewaretoken': csrftoken
}
您總是通過這些請求的字段名稱,而不是 id。 我剛剛登錄成功。
祝項目好運,並記住在玩玩具錢以外的任何東西時實施保護措施。
ps:唯一缺少的有效載荷是“下一個”,但顯然沒有必要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.