Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何强制scrapy抓取重复的url?_Python_Web Crawler_Scrapy - Fatal编程技术网

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

Python 如何强制scrapy抓取重复的url?,python,web-crawler,scrapy,Python,Web Crawler,Scrapy,我正在学习一个网络爬网框架。 默认情况下,它不会对重复的URL或scrapy已经爬网的URL进行爬网 如何使抓取重复的URL或已抓取的URL变为抓取? 我试图在网上找到答案,但找不到相关的帮助 我从中找到了DUPEFILTER\u CLASS=RFPDupeFilter和SgmlLinkExtractor,但这个问题与我所寻找的相反您可能正在寻找请求()上的dont\u filter=True参数。 请参见更优雅的解决方案是完全禁用重复过滤器: # settings.py DUPEFILTER_

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

如何使抓取重复的URL或已抓取的URL变为抓取?
我试图在网上找到答案,但找不到相关的帮助


我从中找到了
DUPEFILTER\u CLASS=RFPDupeFilter
SgmlLinkExtractor
,但这个问题与我所寻找的相反

您可能正在寻找
请求()
上的
dont\u filter=True
参数。
请参见

更优雅的解决方案是完全禁用重复过滤器:

# settings.py
DUPEFILTER_CLASS = 'scrapy.dupefilters.BaseDupeFilter'
这样,您就不必用
dont\u filter=True
来混乱所有请求创建代码。另一个副作用:这只会禁用重复过滤,而不会禁用任何其他过滤器,如异地过滤

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

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

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

但这也会禁用其他过滤器,如Offsite。视情况而定,我可能有多个spider共享相同的常规设置。是的,在这种情况下,您最好使用自定义\u设置,而不是settings.py。调整答案以反映这一点。