xpathselector如何影响scrapy爬行的速度?

时间:2012-04-18 20:47:33

标签: python web-crawler scrapy

我正在使用Scrapy抓取工具抓取超过100k页的网站。在这种情况下,速度是最关心的问题。今天我注意到hxs.select('//*').re('something')hxs.select('//script/text()').re('something')慢。任何专家都可以向我解释原因吗?

据我所知,无论我使用什么xpath选择器,抓取工具都应该下载整个页面。所以xpath不应该对速度产生很大的影响。

非常感谢任何提示。

3 个答案:

答案 0 :(得分:1)

这与下载速度无关。

XPath //*选择整个页面。 XPath //script/text()仅选择脚本元素中的文本。所以当然第二个更快,因为使用re()调用搜索的文本较少!

答案 1 :(得分:1)

我担心你可能会寻找“'在整个文档中,您可能仍应使用hxs.select('//*').re('something')

关于速度问题:答案是,如果你找到“'在一个4k大的文档中,当然需要更长的时间来过滤text()的文档并在该文本中查找该单词后。

答案 2 :(得分:0)

XPath肯定在爬虫速度,爬虫下载页面中起作用,但Xpath处理爬虫下载的Html。因此,如果页面很大,那么xpath将需要时间来处理整个Html。