scrapy拓展

本文介绍了Scrapy框架中信号器的使用,详细列举了各种信号源,如engine_started、item_scraped等,并讲解了如何绑定触发程序。同时,文章探讨了Middleware的可重载函数,包括downloader_middlewares和spider_middlewares中的各种处理函数。此外,还提到了在settings中设置下载延时以及计数器的应用。
摘要由CSDN通过智能技术生成

信号器(signals)的使用

@导入信号器和分发器

from scrapy.xlib.pydispatch import dispatcher
from scrapy import signals

@定义信号出发函数

    def spider_open(self,spider):
        #功能函数
        print('*'*20,'active','*'*20)

@信号源类型

1.engine_started

scrapy.signals.engine_started()

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

该信号支持返回deferreds。

注解
该信号可能会在信号 spider_opened 之后被发送,取决于spider的启动方式。 所以不要 依赖 该信号会比 spider-opened 更早被发送。

2.engine_stopped

scrapy.signals.engine_stopped()

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

    该信号支持返回deferreds。

3.item_scraped

scrapy.signals.item_scraped(item, response, spider)

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

    该信号支持返回deferreds。
    参数: 

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

4.item_dropped

scrapy.signals.item_dropped(item, exception, spider)

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

    该信号支持返回deferreds。
    参数: 

        item (Item 对象) – Item Pipeline 丢弃的item
        spider (Spider 对象) – 爬取item的spider
        exception (DropItem 异常) – 导致item被丢弃的异常(必须是 DropItem 的子类)

5.spider_closed

scrapy.signals.spider_closed(spider, rea
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值