2009-10-03 49 views
3

有一个Python机械化对象,其表单几乎设置了所有值,但尚未提交。现在,我想使用机械化实例的Cookie获取另一个页面,但不需要重新设置页面,表单等等。所以值保持设置(我只需要获得另一页的主体字符串,没有别的)。所以有办法:如何使用机械化cookie来获取http页面?

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

回答

5

与正确答案:

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.br._ua_handlers["_cookies"].cookiejar)) 
opener.open(imgurl) 
2

不知道这是否会工作,但为什么不试试deepcopying的机械化实例,如

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 
+0

也许,但我一直在寻找一种更有效的解决方案 – Fluffy 2009-10-03 16:52:20

2

有些疯狂的想法:

  • 填补之前读取第二页表格?
  • 或者获取新的页面,然后goBack()?虽然也许会重置值。
+0

第一个是不可能的,不幸的是,要去尝试第二个 – Fluffy 2009-10-03 16:51:35

+0

没办法,开放复位一切:( – Fluffy 2009-10-03 17:41:36