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。调整答案以反映这一点。