使用 Scrapy 框架对重复的 url 无法获取数据,dont_filter=True
创始人
2024-11-21 07:06:36
0

 场景:代码没有报错,而且确定 xpath 表达式正确解析。

可能的原因是:你使用了 Scrapy 对重复的 url 进行请求。

Scrapy 内置了重复过滤功能,默认情况下该功能处于打开状态。

如下实例,parse2 无法被调用:

import scrapy  class ExampleSpider(scrapy.Spider):     name ="test"     # allowed_domains = ["https://www.baidu.com/"]      start_urls = ["https://www.baidu.com/"]      def parse(self,response):         yield scrapy.Request(self.start_urls[0],callback=self.parse2)      def parse2(self, response):         print(response.url)

Scrapy 在进入 parse 时,会默认请求一次 start_urls[0],而当你在 parse 中又对 start_urls[0] 进行请求时,Scrapy 底层会默认过滤掉重复的 url,不会对该请求进行提交,这就是为什么 parse2 不被调用的原因。

解决方法:

添加 dont_filter=True 参数,这样 Scrapy 就不会过滤掉重复的请求。

import scrapy  class ExampleSpider(scrapy.Spider):     name ="test"     # allowed_domains = ["https://www.baidu.com/"]      start_urls = ["https://www.baidu.com/"]      def parse(self,response):         yield scrapy.Request(self.start_urls[0],callback=self.parse2,dont_filter=True)      def parse2(self, response):         print(response.url)

此时,parse2 会被正常调用。

相关内容

热门资讯

透视手机版!wepokerpl... 透视手机版!wepokerplus辅助,(WEPOKER)原来是真的有挂(透视)黑侠辅助器(有挂解密...
透视辅助!wpk透视辅助,(W... 透视辅助!wpk透视辅助,(Wpk)总是存在有挂(透视)透视辅助(有挂攻略)1、让任何用户在无需wp...
透视教学!德普之星透视免费, ... 透视教学!德普之星透视免费, (德普)一贯真的有挂(透视)辅助器app(有挂解说);德普之星透视免费...
透视黑科技!sohoo辅助,佛... 透视黑科技!sohoo辅助,佛手大菠萝有挂吗,介绍教程(有挂辅助);1、让任何用户在无需佛手大菠萝有...
透视手机版!wepoker辅助... 透视手机版!wepoker辅助分析器,(wepoker)果然是有挂(透视)有辅助工具(有挂攻略);1...
透视辅助!wpk有作弊吗,(W... 透视辅助!wpk有作弊吗,(WpK)竟然真的有挂(透视)透视是真的假的(有挂详情)亲,关键说明,wp...
透视好牌!德扑之心免费透视, ... 透视好牌!德扑之心免费透视, (德普)真是真的有挂(透视)辅助器(有挂脚本)1、打开软件启动之后找到...
透视好牌!xpoker辅助控制... 透视好牌!xpoker辅助控制,红龙poker作弊指令,技巧教程(有挂技巧)运红龙poker作弊指令...
透视辅助工具!wepoker破... 透视辅助工具!wepoker破解器激活码,(WEPOKER)原来是真的有挂(透视)破解游戏盒子(有挂...
透视辅助!红龙poker作弊指... 透视辅助!红龙poker作弊指令,约局吧游戏挂,教你攻略(有挂解密)一、红龙poker作弊指令软件透...