scrapy信号扩展
engine_started
scrapy.signals.engine_started()
当scrapy引擎启动爬取时发送该信号
该信号支持返回deferreds
当信号可能会在信号spider_opened之后被发送,取决于spider的启动方式
engine_stopped
scrapy.signals.engine_stopped()
当scrapy引擎停止时发送该信号例如爬取结束
该信号支持返回deferreds
item_scraped
scrapy.signals.item_scrapped(item,response,spider)
当item被爬取,并通过Item Pipeline后没有被dropped时发送,该信号支持返回deferreds
参数:爬取到的item对象
爬取item的spider对象
提取item的response对象
item_dropped
scrapy.signals.item_dropped(item,exception,spider)
当item通过Item Pipeline,有些pipeline抛出DropItem异常,丢弃item时发送,该信号支持返回deferreds
参数:Item Pipeline丢弃的item
爬取item的spider对象
导致item被丢弃的异常,必须是DropItem的子类
spider_closed
scrapy.signals.spider_closed(spider,reason)
当某个spider被关闭时发送,该信号可以用来释放每个spider在spider_opened后占用的资源
该信号支持返回deferreds
参数:被关闭的spider对象
描述spider被关闭的原因的字符串。如果spider是由于完成爬取而被关闭,则其为‘finished'。如果spider是被引擎的close_spider方法所关闭,则其为调用该方法时的reason参数(默认为'cancelled')。如果引擎被关闭比如输入Ctrl + C ,则为'shutdown'
spider_opened
scrapy.signals.spider_opened(spider)
当spider开始爬取时发送该信号。该信号支持返回deferreds
参数:开启的spider对象
spider_idle
scrapy.signals.spider_idle(spider)
当spider进入空闲状态时发送该信号。
空闲意味着:requests正在等待被下载
requests被调度
items正在item pipeline中处理
当该信号的所有处理器handler被调用后,如果spider仍然保持空闲状态,引擎将会关闭该spider。当spider被关闭后,spider_closed信号将被发送
可以在spider_idle处理器中调度某些请求来避免spider被关闭。该信号不支持返回deferreds
参数:空闲的spider对象
spider_error
scrapy.signals.spider_error(failure,response,spider)
当spider的回调函数产生错误时发送该信号
参数:以Twisted Failure对象抛出的异常
当异常被抛出时被处理的response对象
抛出异常的spider对象
request_scheduled
scrapy.signals.request_scheduled(request,spider)
当引擎调度一个request对象用于下载时,该信号被发送,该信号不支持返回deferreds
参数:到达调度器的request对象
产生该request的spider对象
response_received
scrapy.signals.response_received(response,request,spider)
当引擎从downloader获取一个新的response时发送该信号,该信号不支持返回deferreds
参数:接受的response对象
生成response的request对象
response对应的spider对象
response_downloaded
scrapy.siganls.response_downloaded(response,request,spider)
当一个HttpResponse被下载时,由downloader发送该信号,该信号不支持返回deferreds
参数:下载的response对象
生成response的request对象
response对应的spider对象
from scrapy import signals class Myextensions(object):def __init__(self):pass@classmethoddef from_crawler(cls,crawler):obj=cls()crawler.signals.connect(obj.xiaobai,signal=signals.spider_opened)crawler.signals.connect(obj.baixiao,signal=signals.spider_closed)return objdef xiaobai(self,spider):print('opened')def baixiao(selfs,spider):print('closed')
转载于:https://www.cnblogs.com/c491873412/p/7845635.html
scrapy信号扩展相关推荐
- 路由器桥接设置 信号扩展
老家的房子比较大,一个无线路由器很难做到全覆盖.为了解决这个问题,我尝试了以下几种方法. 第一 使用WiFi扩展器 优点:简单方便,哪里信号弱就插在哪里.由于是USB供电,而且体积小巧,所以非常方便. ...
- scrapy信号 signals 笔记
Scrapy使用信号来通知scrapy启动和关闭等事情的发生.可以在Scrapy项目中捕捉一些信号(使用 extension)来完成额外的工作或添加额外的功能,扩展Scrapy. scrapy内置信号 ...
- 三十四 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy信号详解
信号一般使用信号分发器dispatcher.connect(),来设置信号,和信号触发函数,当捕获到信号时执行一个函数 dispatcher.connect()信号分发器,第一个参数信号触发函数,第二 ...
- scrapy自定义扩展(extensions)实现实时监控scrapy爬虫的运行状态
效果图: 废话 如何知道你写的爬虫有没有正常运行,运行了多长时间,请求了多少个网页,抓到了多少条数据呢?官方其实就提供了一个字典就包含一些抓取的相关信息:crawler.stats.get_stats ...
- WiFi信号扩展的最佳方案
单台无线路由器的覆盖范围有限,特别是隔了几堵墙之后,信号就变得很弱了.家里的无线路由器是放在大门后的弱电箱里,在卧室里信号就太弱了. 最常见的解决方案是WDS.动手测试一下,发现有一个明显的缺 ...
- scrapy的信号(signal)以及对下载中间件的一些总结
直接往redis里记录一下,我今天爬了多少数据 是否和我预期一样 爬虫状态码异常,你怎么查 我的爬虫没任务了它就会退出了,我不想它退出怎么办 爬虫关闭了,我不想看进程,我希望给我来个邮件 怎么办 我现 ...
- 如何通过3/8译码器扩展处理器片选信号
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明,否则将追究法律责任. http://blog.csdn.net/hzliyun/article/details/707 ...
- Scrapy 学习笔记(-)
Scrapy Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所 ...
- Scrapy框架-去重原理讲解、数据收集以及信号量知识
scrapy的去重原理 信号无处不在 [知其然且知其所以然,才能够更好的理解这个框架,而且在使用和改动的时候也能够想出更合理的方法.] (开始测试前,到settings.py中注释掉下载中间件的设置, ...
- 爬虫----Scrapy框架
一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...
最新文章
- 手动创建一棵二叉树,然后利用前序、中序、后序、层序进行遍历(从创建二叉树到各种方式遍历)(含运行结果)
- java是什么 需要学什么_Java是什么,Java需要学习哪些内容?如何自学Java?
- 不常用≠没用 Win7容易忽略的四个功能
- 叮咚!你有一份来自明源云的圣诞邀约
- 计算机联锁软件毕设论文,铁路信号计算机联锁系统()毕设论文.doc
- MaxCompute管家详解--管家助力,轻松玩转MaxCompute
- 找工作经验之——准备工作
- Android开发自定义View之滑动按钮与自定义属性
- GetHashCode 方法 并不能保证值唯一
- python迭代遍历目录下所以文件(Iterating through directories with Python)
- 猫途鹰联手携程集团打造面向中国出境旅行者的顶级旅行平台
- 词法分析之LED文件生成程序【调试中......】
- 西安电子科技大学计算机应用,西安电子科技大学计算机应用技术考研
- Programming Languages PartA Week4学习笔记——SML函数式编程
- 北京化工大学通信工程linux,2020北京化工大学信息与通信工程考研经验考研真题考研分数线考研参考书、目录...
- 从《国产凌凌漆》看到《头号玩家》,你就能全面了解5G
- docsify配置flowchart模块
- 电子工程师计算机相关论文题目,电子信息工程师职称论文
- html+css 图片右上角加删除叉,图片删除
- com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method list in the service com.dream.servic