废弃一个巨大的网站,scrapy从未完成

时间:2015-06-02 13:01:56

标签: scrapy scrapy-spider

我正在抓取一个拥有数百万页和大约数十万件物品的网站。

我使用CrawlSpider和LxmlLinkExtractors来定义不同类型页面之间的确切路径。

一切正常,我的刮刀也不会跟踪不需要的链接。

然而,整个网站似乎从来没有完全被刮掉,并且在每次新的运行中都会刮掉他之前从未爬过的很多页面。

CrawlSpider不应该在每次运行时都采用相同的路径吗?

2 个答案:

答案 0 :(得分:0)

我不知道CrawlSpider是否应该是确定性的,但是具有数百万页的网站在给定页面上可能并不总是相同的链接,并且可能不按相同的顺序传递响应。

不,我不希望CrawlSpider采用相同的路径。但不是因为Spider,而是因为数据源的性质和不可预测的网络延迟。

答案 1 :(得分:0)

  

CrawlSpider不应该在每次运行时都采用相同的路径吗?

简短回答:不一定。

如果您没有提供有关如何解析页面的信息,可能会自行产生请求,或者您是否拥有可能以某种方式影响链接遍历的代码(例如,自己实现的中间件),则很难准确回答。请记住,Scrapy将请求推送到各种队列,然后继续处理所述请求。很多都可以影响到这一点。

但最常见的答案通常是正确的答案:最可能的情况是,您正在抓取的网站(如大多数现代大型网站)都有动态内容,这意味着当您多次点击同一页面时,它就是底层HTML可能以各种方式不同。