Python Scrapy:使用Selenium还是模拟XHR请求会更好吗?

时间:2016-12-28 18:04:42

标签: ajax selenium scrapy screen-scraping vps

我想废弃一个在其上有ajax页面的大型在线市场网站。我想在Centos VPS上设置它,它会间歇性地在网站上获取数据,以便我能够提供我的产品策略。

我是python和scrapy的新手,在这种情况下是刮擦。我已经阅读了一些网站,让我继续使用AJAx组件来删除页面。

方法1.用于scrapy与硒的相互作用。我在我的vps上安装整个设置我不知道这是否可行。硒需要GUI浏览器才能运行吗?然而,这将是一个很好的设置,它将允许快速更改,以防万一Web门户网站的未来发生变化。

方法2.对于scrapy来模拟XHR请求。在XHR呼叫上有一些研究要做。但是,处理起来会更快,但如果网站未来发生变化,则需要花费更多时间进行调整。

任何帮助都是适用的。

1 个答案:

答案 0 :(得分:1)

复制XHR,AJAX或任何其他类型的请求总是比使用Selenium之类的东西快数倍且资源密集程度要低得多。

但是,要获得最佳性能,您需要手动复制,反向设计所有请求。某些网站可能只有几个请求来填充您在页面上搜索的产品数据 在这个ocassions中,使用某些东西来呈现javascript而不是对网站所做的所有XHR或类似请求进行逆向工程是有意义的。

有一个非常好的工具,专为那个名为splash的工具设计,这是一个像网页浏览器一样呈现网页的服务(它使用qt网络浏览器来做)。这将是一种懒惰的方法,它也会以极大的优势超越硒,但仍然落后于在scrapy中重写请求的实际操作方法。