如何强制scrapy抓取重复的url?

2024-04-29 09:07:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Scrapy一个网络爬行框架。
默认情况下,它不会爬网重复的url或scrapy已经爬网的url。

如何使Scrapy抓取重复的url或已抓取的url?
我试图在网上查到,但找不到相关的帮助。

我从Scrapy - Spider crawls duplicate urls找到了DUPEFILTER_CLASS = RFPDupeFilterSgmlLinkExtractor,但这个问题与我所看到的相反


Tags: 网络框架url情况urlsclassspiderscrapy
2条回答

更优雅的解决方案是完全禁用复制筛选器:

# settings.py
DUPEFILTER_CLASS = 'scrapy.dupefilters.BaseDupeFilter'

这样您就不必用dont_filter=True把所有的请求创建代码都弄乱。另一个副作用:这只会禁用重复筛选,而不会禁用任何其他筛选,如场外筛选。

如果希望仅对项目中的一个或多个蜘蛛中的某些蜘蛛有选择地使用此设置,可以通过蜘蛛实现中的^{}进行设置:

class MySpider(scrapy.Spider):
    name = 'myspider'

    custom_settings = {
        'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter',
    }

你可能在找Request()上的dont_filter=True参数。 见http://doc.scrapy.org/en/latest/topics/request-response.html#request-objects

相关问题 更多 >