屏幕刮擦表结果

2024-07-03 08:20:20 发布

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

我最近被一个客户要求为他们的保险业务建立一个网站。作为这项工作的一部分,他们想为他们的供应商之一做一些报价网站的屏幕抓取。他们问他们是否有一个API来实现这一点,但他们被告知没有,但如果他们能从他们的引擎中获取数据,他们就可以随心所欲地使用它。在

我的问题:甚至可以对提交到另一个站点的表单的响应执行屏幕抓取吗?如果是这样的话,我应该注意哪些问题。明显的法律/道德问题被搁置一边,因为他们已经申请了我们计划做的事情的许可。在

另外,我更喜欢用python进行任何处理。在

谢谢


Tags: 引擎api表单客户屏幕站点网站事情
3条回答

一个非常好的屏幕抓取库是mechanize,我相信它是用Perl编写的原始库的克隆。不管怎样,再加上ClientForm模块,再加上BeautifulGroup的一些额外帮助,你应该离开了。在

我用Python编写了大量屏幕抓取代码,这些模块被证明是最有用的。理论上,mechanize所做的大多数事情理论上都可以通过使用标准库中的urllib2httplib模块来完成,但是mechanize使这项工作变得轻而易举:本质上它给了你一个程序化的浏览器(注意,它不需要浏览器工作,但是mearly为你提供了一个行为类似于完全可定制浏览器的API)。在

对于后处理,我已经用beauthoulsoup取得了很多成功,但是lxml.html也是一个不错的选择。在

基本上,您肯定能够在Python中做到这一点,而且您的结果应该是非常好的,有了各种工具。在

我看到另外两个答案已经提到了所有主要的图书馆的目的。。。只要被刮取的站点没有大量使用Javascript,也就是说。如果它是一个Javascript重的站点,并且依赖于JS来获取和显示数据(例如通过AJAX),那么问题就更难解决了;在这种情况下,我建议从crowbardiggstripperselenium等开始

你必须用Javascript做大量的工作,可能还要专门处理这个网站的细节,这取决于它使用的JS框架,等等;这就是为什么在这种情况下,这项工作要困难得多。但是在任何情况下,您可能最终得到(至少部分)显示的站点页面的本地HTML副本,并通过使用推荐的其他工具刮取这些副本来结束。祝你好运:愿你抓取的网站永远是Javascript的亮点!-)在

您可以将一个data参数传递给^{},以便将POST数据与请求一起发送,就像您填写表单一样。显然,您必须查看表单中到底包含哪些数据。在

另外,如果表单有method="GET",那么请求数据只是给urlopen的url的一部分。在

抓取返回的HTML数据的标准是BeautifulSoup。在

相关问题 更多 >