python – 没有浏览器的导航实用程序,重量轻,防故障

我有一个用例,我需要填写网站中的表单,但无法访问API.目前我们正在使用webdriver和浏览器,但它变得非常繁重而且不是万无一失的,因为该过程是异步的.有没有办法可以在没有浏览器的情况下完成它,并通过密切监视待处理的请求来使进程同步?

Casperjs和htmlunitdriver似乎是我拥有的最佳选择.有人可以解释维护,防故障,重量轻的优点或缺点.

我需要浏览复杂和许多不同类型的网页.我想要导航的一些网页是由JS驱动的.

Scrapy可用于此目的吗?

最佳答案 好吧,我一直在使用很多不同的方法来做到这一点,可靠的是你想要系统的智能/先进性.我穿ruby,ruby很容易做到.下面是我发现最有用的方法(因为漂亮的ruby有偏见):

>机械化(found here):超轻,超快,超级可靠.它处理浏览器所做的一切,除了JS.在引擎盖下,它是一个开放式的XML解析器,顶部有一个漂亮的界面层,还有一些额外的香料.查看文档中的教程.我认为它也适用于python和其他类似的东西.
> Poltergeist(found here):快速,真实的浏览器行为,非常可靠,重量轻,支持JS.在引擎盖下它是一个幻影js驱动的水豚浏览器(但没有所有讨厌的依赖,完全无头).即使它是用于测试的,例如rspec,它很容易以其他方式使用,或者单独使用,只需搜索谷歌.
> Watir-webdriver(found here):一个超级强大的库,用于驱动诸如firefox,IE,chrome或safari等真正的浏览器.它实际上非常稳定.但是,如果您没有连接真实的物理屏幕(例如,在服务器上),则需要运行xvfb,并将浏览器的输出映射到它.这可以通过here提到的无头宝石很容易地完成

换句话说,如果您不需要JS支持,请使用mechanize.

点赞