簡體   English   中英

機械化Python中的mechanize.CookieJar()是什么?

[英]What is mechanize.CookieJar() in mechanize Python?

我最近一直在研究一種腳本,該腳本可以訪問網站的表單進行登錄。嘗試了請求,但是機械化似乎對該應用程序更好。 到處問,我寫了下面的代碼,它可以正常工作:

mCookieJar = mechanize.CookieJar()
br = mechanize.Browser()
br.set_handle_robots(False)
br.set_handle_equiv(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (Manjaro; U; Linux x86_64; en-US; rv:1.9.0.1)')]
br.set_cookiejar(mCookieJar)
br.open(LoginUrl)
br.select_form(action="/takelogin.php")
br['email'] = Username
br['password'] = Password
resp = br.submit()

這可以正常工作,但是每次運行腳本時都會創建一個新的會話cookie。 這是不理想的,因為按照我對該網站的用戶偏好設置,我最終需要手動關閉大量會話。 該網站對於自動腳本確實有另一種解決方法-您可以為此目的生成一個永久cookie。

但是,我不知道是什么機械化。CookieJar()是什么 Python機械化文檔中找不到該方法或類的任何提及。 那里有幾個不同的cookiejar庫,但是我不需要包括其中的任何一個都可以使它起作用。

那這堂課是什么? 是機械化的一部分嗎? 如何手動向其中添加Cookie? mechanize.Browser()類有一些set_cookie()方法,但我不知道這些方法是否會自動將它們添加到活動cookiejar中。 對於我來說,這段代碼可以工作很奇怪,並且在網上有使用mechanize.CookieJar()的示例,但是在文檔中沒有任何提及。

瀏覽源代碼似乎是mechanizeCookieJarcookielib (Python2)或http.cookiejar (Python3)中重新導出CookieJar

話雖如此,如果您想在腳本的不同運行之間持久保存cookie,則可能應該使用FileCookieJar 這也將以相同的方式重新導出:

暫無
暫無

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

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