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

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的高,必要的情况下它可以用来方便数据的处理
 

猜你喜欢

转载自blog.csdn.net/Mai_Dreizehn/article/details/86528239
今日推荐