【问题标题】:How to get a http page using mechanize cookies?如何使用机械化 cookie 获取 http 页面?
【发布时间】:2009-10-03 14:08:10
【问题描述】:

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

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

【问题讨论】:

    标签: python mechanize


    【解决方案1】:

    以及正确答案:

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

    【讨论】:

      【解决方案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
      

      【讨论】:

      • 也许,但我正在寻找更有效的解决方案
      【解决方案3】:

      一些疯狂的想法:

      • 在填写表格之前获取第二页?
      • 或者获取新页面然后goBack()?虽然这可能会重置这些值。

      【讨论】:

      • 第一个是不可能的,不幸的是,我会尝试第二个
      • 没办法,打开会重置一切:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多