3

有一个 Python 机械化对象,其表单几乎所有值都已设置,但尚未提交。现在我想使用 mechanize 实例中的 cookie 获取另一个页面,但不重置页面、表单等,例如,使值保持设置(我只需要获取另一个页面的正文字符串,仅此而已)。那么有没有办法:

  1. 告诉 mechanize 不要重置页面(也许,通过UserAgentBase)?
  2. 使用mechanizeurllib2的饼干罐?注意:urllib2.HTTPCookieProcessor(self.br._ua_handlers["_cookies"].cookiejar)不起作用
  3. 任何其他方式将cookie传递给urllib
4

3 回答 3

5

以及正确答案:

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.br._ua_handlers["_cookies"].cookiejar))
opener.open(imgurl)
于 2009-10-03T21:03:46.730 回答
2

不知道这是否可行,但你为什么不尝试对机械化实例进行深度复制,例如

from copy import deepcopy
br = Browser()
br.open("http://www.example.com/")
# Make a copy for doing other stuff with
br2 = deepcopy(br)
# Do stuff with br2
# Now do stuff with br
于 2009-10-03T14:29:37.920 回答
2

一些疯狂的想法:

  • 在填写表格之前获取第二页?
  • 或者获取新页面然后 goBack()?虽然也许这会重置这些值。
于 2009-10-03T14:39:21.223 回答