我的代码类似于:
br = mechanize.Browser()
br.open("https://mysite.com/")
br.select_form(nr=0)
#do stuff here
response = br.submit()
html = response.read()
#now that i have the login cookie i can do this...
br.open("https://mysite.com/")
html = response.read()
但是,我的脚本响应时没有登录第二个请求。我检查了第一个请求,是的,它成功登录。我的问题是:机械化浏览器中的Cookie是否需要管理,或者我是否需要设置CookieJar或其他内容,还是为您跟踪所有这些?
第一个示例here讨论了请求之间传输的cookie,但他们没有谈论浏览器。
答案 0 :(得分:2)
是的,您必须将cookie
存储在open
之内的mechanize
个请求之间。类似于下面的内容应该可以正常工作,因为您可以将cookiejar
添加到br
对象,只要该对象存在,它就会保留该cookie。
import Cookie
import cookielib
cookiejar =cookielib.LWPCookieJar()
br = mechanize.Browser()
br.set_cookiejar(cookiejar)
br.open("https://mysite.com/")
br.select_form(nr=0)
#do stuff here
response = br.submit()
html = response.read()
#now that i have the login cookie i can do this...
br.open("https://mysite.com/")
html = response.read()
Docs更详细地介绍了它。
我使用perl
mechanize
很多,但不是python
所以我可能错过了一些特定的python
工作,所以如果我这样做,我道歉,但我我不想用简单的yes
回答。