scrapy - Request 中的回调函数不执行or只执行一次
时间:2022-06-19
本文章向大家介绍scrapy - Request 中的回调函数不执行or只执行一次,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在 scrapy 中,
scrapy.Request(url, headers=self.header, callback=self.parse)
调试的时候,发现回调函数 parse
没有被调用,这可能就是被过滤掉了,查看 scrapy 的输出日志 offsite/filtered
会显示过滤的数目。这个问题如何解决呢,查看手册发现(https://doc.scrapy.org/en/latest/faq.html?highlight=offsite%2Ffiltered)这个问题,这些日志信息都是由 scrapy 中的一个 middleware 抛出的,如果没有自定义,那么这个 middleware 就是默认的 Offsite Spider Middleware
,它的目的就是过滤掉那些不在 allowed_domains
列表中的请求 requests。
再次查看手册中关于 OffsiteMiddleware
的部分(https://doc.scrapy.org/en/latest/topics/spider-middleware.html#scrapy.spidermiddlewares.offsite.OffsiteMiddleware)
两种方法能够使 requests 不被过滤:
1. 在
allowed_domains
中加入 url 2. 在 scrapy.Request() 函数中将参数dont_filter=True
设置为 True
如下摘自手册
If the spider doesn’t define an allowed_domains attribute, or the attribute is empty, the offsite middleware will allow all requests.
If the request has the dont_filter attribute set, the offsite middleware will allow the request even if its domain is not listed in allowed domains
- 无插件仅代码实现 WordPress 分页导航(2)
- [C#3] 4-匿名类型
- jquery操作DOM 元素(3)
- 腾讯汤道生对话牛津大学互联网研究院Luciano:大数据将如何改变世界
- 分享本站右侧 “类Metro风格侧边栏” 的实现方法
- [C#1] 1-Hello World
- 代码审查工具StyleCop
- 实用工具特别推荐 Robocopy GUI
- 七牛镜像存储 WordPress 插件 的代码化
- WordPress 会自动压缩JPEG 格式的图像?
- jquery操作DOM 元素(2)
- WordPress 中部署真正的懒加载(Lazy Load)
- 图形化的2008R2 Server Core 配置管理工具
- 各种浏览器的userAgent
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SparkStreaming和Kafka基于Direct Approach如何管理offset
- Spark在处理数据的时候,会将数据都加载到内存再做处理吗?
- 美团点评2020年测试工程师笔试题
- Pytest之重运行及生成测试报告
- 一条SQL的奇妙旅行
- 表格的融合
- 解放双手,使用批处理达到账号密码之类再也用不着手动输入!
- 教你在几分钟内构建一个Python包
- 撸了一个 Feign 增强包
- YCbCr444转YCbCr422
- fpga实现YCbCr422转YCbCr444
- ES系列之原理copy_to用好了这么香
- 面试官写了个双冒号::问我这是什么语法?Java中有这玩意?
- 【基础篇】一步一步实现c#与halcon联合编程
- Kafka生产者的使用和原理