Scrapy框架(三):Spider Middleware的用法

本文深入探讨了Scrapy框架中的SpiderMiddleware,详细介绍了其工作原理和核心方法,包括process_spider_input、process_spider_output等,揭示了如何通过SpiderMiddleware进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spider Middleware是介入到Scrapy的Spider处理机制的钩子框架。

当Downloader生成Response之后,Response会被发送到Spider,在发送给Spider之前,Response会首先经过Spider Middleware处理,当Spider处理生成Item和Request之后,Item和Request还会经过Spider Middleware的处理

1.使用说明

Spider Middleware首先加入到SPIDER_MIDDLEWARES设置中,该设置会和Scrapy中SPIDER_MIDDLEWARES_BASE定义的Spider Middleware合并。然后根据键值的数字优先级排序,得到一个有序列表,第一个最靠近引擎,最后一个靠近Spider

2.核心方法

process_spider_input(response,spider)

当Response 被Spider Middleware 处理时·,process_spider_input ()方法被调用。

process_spider_output(response,exception,spider)

当Spider 处理Response 返回结果时,process spider_ output ()方法被调用。

process_spider_exception(response,exception,spider)

当Spider 或Spider Middleware 的process_spider _input ()方法抛出异常时,process_spider_exception()
方法被调用。

process_spider_exception()必须要么返回None ,要么返回一个包含Response 或Item 对象的可迭
代对象。
 

process_start_requests(start_requests,spider)

process_start_requests()方法以Spider 启动的Request 为参数被调用,执行的过程类似于process_
spider_output(),只不过它没有相关联的Response ,并且必须返回Request 。

 

总结

Spider Middleware使用的频率不如Downloader Middleware的高,必要的情况下它可以用来方便数据的处理
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值