scrapy信号 signals 笔记

Scrapy使用信号机制通知引擎启动、停止等事件。本文详细介绍了内置信号如engine_started、engine_stopped、item_scraped等,以及如何通过扩展(extension)捕获这些信号以增强Scrapy的功能。例如,当item被成功爬取、丢弃或遇到错误时,都会触发相应的信号,允许开发者进行定制化的处理。
摘要由CSDN通过智能技术生成

Scrapy使用信号来通知scrapy启动和关闭等事情的发生。可以在Scrapy项目中捕捉一些信号(使用 extension)来完成额外的工作或添加额外的功能,扩展Scrapy。

scrapy内置信号

engine_started = object()
engine_stopped = object()
spider_opened = object()
spider_idle = object()
spider_closed = object()
spider_error = object()
request_scheduled = object()
request_dropped = object()
response_received = object()
response_downloaded = object()
item_scraped = object()
item_dropped = object()

engine_started

当Scrapy引擎启动爬取时发送该信号。

该信号支持返回deferreds。

该信号可能会在信号 spider_opened 之后被发送,取决于spider的启动方式。 所以不要根据该信号来比较哪个更早被发送。

engine_stopped

当Scrapy引擎停止时发送该信号(例如,爬取结束)。

该信号支持返回deferreds。

item_scraped

当item被爬取,并通过所有 Item Pipeline 后(没有被丢弃(dropped),发送该信号。

该信号支持返回deferreds。

scrapy.signals.item_scraped(itemresponsespider)

  • item (Item 对象) – 爬取到的item
  • spider (Spider 对象) – 爬取item的spider
  • response (Response 对象) – 提取item的response

item_dropped

当item通过 Item Pipeline ,有些pipeline抛出 DropItem 异常,丢弃item时,该信号被发送。

该信号支持返回deferreds。

scrapy.signals.item_dropped(itemexceptionspider)

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值