得到机械化和斜纹的说话

时间:2017-08-17 16:18:50

标签: python cookies mechanize twill

我正在为我的雇主编写一个脚本,以便从他们自己的网站获取某些数据。由于一系列原因,我需要在显示网站时获取数据。我发现,其中一些数据是通过js调用来检索的......

回想起来,我应该选择机械化,但是我选择了斜纹(认为我可以使用机械化,因为斜纹将自己描述为机械化的薄包装)该项目仅仅是一个完成后的一个呼叫后我绝望地不想重写所有基于斜纹的机械化代码。

我需要提交一份未附加到表单的帖子请求。所以我需要机械化(或类似的lib)。根据twill的文档,应该有一个机械化浏览器对象可以通过以下代码检索:

#after logging in and successfully loading pages
b = get_browser()
mb = b._browser

我得到: AttributeError: 'TwillBrowser' object has no attribute '_browser'

看看来源,看来twill的浏览器不再使用机械化的浏览器了吗?

所以我的问题是:

  1. 斜纹里面还有一个机械化的浏览器。
  2. 如果是这样,我怎么得到它?
  3. 如果没有,我怎样才能将斜纹布的饼干机械化,以便我可以使用这些饼干提出要求?
  4. 理想情况下我会这样:

    cjar = 'cookies.yaml'
    save_cookies(cjar)
    mb.open(url, data=data, cookies=cjar)
    

    但我知道我需要更多的魔力而不仅仅是添加cookies = filename:)

1 个答案:

答案 0 :(得分:0)

  
      
  1. 斜纹里面还有一个机械化的浏览器。
  2.   
  3. 如果是这样,我怎么得到它?
  4.   

没有。它不再是斜纹布。虽然pip安装斜纹仍然包括机械化到斜纹的文件,但斜纹的代码永远不会导入这些模块。

  
      
  1. 如果没有,我怎样才能将斜纹布的饼干机械化,以便我可以使用这些饼干提出要求?
  2.   

从我所阅读的内容来看,似乎没有一种简单或琐碎的方式来做到这一点。 你可以从twill中保存_cookies(但是你不能自定义它们的保存方式)。 Mechanize将需要帮助来读取cookie文件,当它加载它们时,它将需要忽略持久性等.Mechanize确实让你能够做到这一点,但我还没有找到任何可用的代码。 /> 在我的情况下,编写一个方法会更容易在斜纹和机械化中登录。