我正在使用 python mechanize 制作登录脚本。我已经读到机械化的 Browser() 对象将自动处理 cookie 以获取进一步的请求。我怎样才能使这个 cookie 持久化,即保存到一个文件中,以便以后可以从该文件中加载。我的脚本当前每次运行时都使用 Browser() 对象登录(使用 mechanize/HTML 表单)到网站。
问问题
286 次
1 回答
0
如果您在查看 Mechanize 的 API 文档
http://wwwsearch.sourceforge.net/mechanize/doc.html
有一些关于你具体要求的信息,特别是CookieJar
和LWPCookieJar
材料。
从文档:
还有一些 CookieJar 子类可以将 cookie 存储在文件和数据库中。FileCookieJar 是 CookieJars 的抽象类,可以将 cookie 存储在磁盘文件中。LWPCookieJar 以与 libwww-perl 库兼容的格式保存 cookie。如果您想将 cookie 存储在人类可读的文件中,这个类很方便:
import mechanize
cj = mechanize.LWPCookieJar()
cj.revert("cookie3.txt")
opener = mechanize.build_opener(mechanize.HTTPCookieProcessor(cj))
r = opener.open("http://foobar.com/")
cj.save("cookie3.txt")
编辑:评论中要求的伪代码
- 尝试从文件中加载您的 CookieJar
- 如果成功,将 Browser() cookie jar 设置为加载的 cookie jar
- 尝试正常访问页面
- 否则,如果不成功,请浏览页面,直到您拥有所有 cookie
- 使用 LWPCookieJar() 将 cookie 保存到文件中;
于 2013-08-21T19:40:48.217 回答