2024-04-29 09:07:21 发布
网友
我正在学习Scrapy一个网络爬行框架。 默认情况下,它不会爬网重复的url或scrapy已经爬网的url。
如何使Scrapy抓取重复的url或已抓取的url? 我试图在网上查到,但找不到相关的帮助。
我从Scrapy - Spider crawls duplicate urls找到了DUPEFILTER_CLASS = RFPDupeFilter和SgmlLinkExtractor,但这个问题与我所看到的相反
DUPEFILTER_CLASS = RFPDupeFilter
SgmlLinkExtractor
更优雅的解决方案是完全禁用复制筛选器:
# settings.py DUPEFILTER_CLASS = 'scrapy.dupefilters.BaseDupeFilter'
这样您就不必用dont_filter=True把所有的请求创建代码都弄乱。另一个副作用:这只会禁用重复筛选,而不会禁用任何其他筛选,如场外筛选。
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
Request()
更优雅的解决方案是完全禁用复制筛选器:
这样您就不必用
dont_filter=True
把所有的请求创建代码都弄乱。另一个副作用:这只会禁用重复筛选,而不会禁用任何其他筛选,如场外筛选。如果希望仅对项目中的一个或多个蜘蛛中的某些蜘蛛有选择地使用此设置,可以通过蜘蛛实现中的^{} 进行设置:
你可能在找
Request()
上的dont_filter=True
参数。 见http://doc.scrapy.org/en/latest/topics/request-response.html#request-objects相关问题 更多 >
编程相关推荐