scrapy LinkExtractors最终会得到独特的链接吗?

时间:2014-08-04 11:57:05

标签: scrapy

所以,我有一个包含大量文章和页码的页面。现在,如果我要提取一篇文章,我会使用:

Rule(LinkExtractor(allow=['article\/.+\.html']), callback='parse_article')

我使用此规则的页面:     规则(LinkExtractor(允许='页= \ d +'))

所以我最终得到了这些规则:

rules = [
    Rule(LinkExtractor(allow='page=\d+')),
    Rule(LinkExtractor(allow=['article\/.+\.html']), callback='parse_article')
]

我的问题是,我会重复翻页吗?如何,它是否会从第1,2,4,5,6页提取第3页(直到第3页不再可见)并将其添加到提取的链接列表中?或者它只保留最终的唯一网址?

1 个答案:

答案 0 :(得分:2)

默认情况下,LinkExtractor应仅返回唯一链接。 There is an optional parameter, unique, which is True by default

但这只能确保从每个页面提取的链接是唯一的。如果在后一页上出现相同的链接,则会再次提取该链接。

默认情况下,根据DUPEFILTER_CLASS设置,您的蜘蛛应自动确保它不会再次访问相同的网址。唯一需要注意的是,如果再次停止并启动蜘蛛,则会重置访问过的URL的记录。请查看文档中的"Jobs: pausing and resuming crawls",了解暂停和恢复蜘蛛时如何保留信息。