2014-01-05 19 views
11

我想从网站上刮取一些数据。Scrapy或Selenium或机械刮擦网页数据?

基本上,网站有一些表格显示并显示大约50条记录。对于更多的记录,用户必须点击某个按钮,这使得ajax调用获得&显示接下来的50条记录。

我以前有关于Selenium webdriver(Python)的知识。我可以在Selenium中很快完成此操作。但是,Selenium是更为自动化的测试工具,速度非常慢。

我做了一些R & D,发现使用Scrapy或Mechanize,我也可以做同样的事情。

我应该为Scrapy还是机械化或Selenium?

+0

你真的在寻找意见。这不是本网站的主要目的。有没有关于这些选项的特别问题? –

+1

我真的很困惑,因为我不知道其他两种技术。 –

+6

用JavaScript刮脸网站可能会变得非常棘手。 Scrapy提供比Mechanize更好的功能来进行大规模的网络爬取和解析,但是在这两种情况下,都需要对网站进行类似于您的网站的反向工程(请求触发按钮,哪些参数,cookies,有效负载等)并在您的代码中重现。 – Rolando

回答

8

我会建议您使用Mechanize和ExecJS(https://github.com/sstephenson/execjs)的组合来执行您可能遇到的任何JavaScript请求。我已经使用这两种宝石相当长一段时间了,他们做得很好。

您应该选择此选项而不是Selenium,因为与使用无头浏览器呈现整个页面相比,它会快很多。

0

当然我会选择Scrapy。如果你不能处理JavaScript,你可以尝试使用Scrapy + splash。 Scrapy是目前为止我所知道的网络抓取最快的工具。 祝你好运!