[英]How to login a website using python module “mechanize” with a cookies.txt exported by the chrome extension “cookies.txt export”?
我在stackoverflow中查看了類似的問題,但似乎沒有答案可以衡量。 現在我手中有一個cookies.txt,它由一個名為“cookies.txt”的chrome擴展名導出。 我可以執行命令“wget --load-cookies cookies.txt www.example.com”下載經過身份驗證的帳戶的網頁。
但是,當我嘗試在我的python腳本中使用此文件時遇到了一個問題,如下所示,
import mechanize
cookie = 'cookies.txt'
cookiejar = mechanize.FileCookieJar(cookies.txt)
br = mechanize.Browser()
br.set_handle_robots(False)
br.set_cookiejar(cookiejar)
url = 'www.example.com'
response = br.open(url)
s = response.read()
f = open('test.html','w')
f.write(s)
f.close()
執行此腳本后,我只有一個沒有登錄帳戶的網頁。 如果我將前幾行代碼改為此代碼
import mechanize
cookie = 'cookies.txt'
cookiejar = mechanize.MozillaCookieJar()
cookiejar.load(cookie)
我收到錯誤消息“mechanize._clientcookie.LoadError:cookies.txt看起來不像Netscape格式的cookie文件”執行腳本。
鑒於此文件在wget命令中有效,我不知道如何使用此cookies.txt完成身份驗證。
我收到相同的錯誤,直到我將其添加到我的cookie文件的頂部,現在工作。
# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file! Do not edit.
根據機械化源代碼,類MozillaCookieJar的load方法將首先搜索正則表達式“#(Netscape)?HTTP Cookie文件”,因此您可以將此行插入導出的cookie.txt的頂部:
# Netscape HTTP Cookie File
使用cookielib模塊處理cookie。
http://docs.python.org/library/cookielib.html
具體來說,您需要了解如何使用FileCookieJar.load()
這應該讓你走上正軌。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.