机械化和斜纹说话

2024-06-23 19:33:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的雇主写一个脚本,从他们自己的网站上获取某些数据。由于一长串的原因,我需要得到的数据从网站上显示出来。我发现,有些数据是通过js调用检索的

回想起来,我应该选择mechanize,但是我选择了twill(我认为我可以访问mechanize,因为twill将自己描述为mechanize的薄包装器),项目离完成只有一次后期调用,我非常不想重写我所有基于twill的mechanize代码

我需要提交一个没有附在表格上的职位申请。所以我需要mechanize(或者类似的lib)。根据twill的文档,应该有一个可以通过以下代码检索的mechanize浏览器对象:

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

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

从源代码看,twill的浏览器似乎不再使用mechanize的浏览器了

所以我的问题是:

  1. twill里面还有一个机械化浏览器吗
  2. 如果是,我怎么得到它
  3. 如果没有,我如何从twill获得cookies以实现机械化,以便我可以使用这些cookies发出请求

理想情况下我会这样:

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

但我知道我需要的不仅仅是添加cookies=filename:)


Tags: 数据代码browser脚本data网站浏览器原因
1条回答
网友
1楼 · 发布于 2024-06-23 19:33:49
  1. Is there still a mechanize browser inside twill.
  2. If so, how do I get it?

不,它不再是斜纹的。虽然pip安装twill仍然将mechanize包含到twill的文件中,但twill的代码从未导入这些模块

  1. If not, how can I get the cookies from twill to mechanize so I can make request using those cookies?

从我所读到的,似乎没有一个简单或琐碎的方法来做到这一点。 您可以从twill保存cookies(但不能自定义保存方式)。Mechanize需要帮助来读取cookie文件,加载cookie文件时需要忽略持久性等。Mechanize确实提供了执行此操作的能力,但我还没有找到任何可用的代码。
在我的例子中,编写一个用twill和mechanize登录的方法比较容易

相关问题 更多 >

    热门问题