Middleware
数据流向:
当Downloader生成Response之后,Response会被发送给Spider,在发送之前,会经过Middleware处理,当Spider处理生成Item和Request之后,Item和Request还会经过Middleware处理。
作用:
1.Response发送给Spider之前对Response进行处理
2.Request发送给Scheduler之前对Request进行处理
3.在Item发送给Item Pipeline之前对Item进行处理。
核心方法
process_spider_input
当Response被Spider Middleware处理,此方法被调用
process_spider_output
当Spider处理Response返回结果时,此方法被调用
process_spider_exception
抛出异常时,被调用
process_start_requests
以Spider启动的Request为参数被调用。
Item Pipeline
功能
1.清洗数据
2.验证爬取数据,检查爬取字段
扫描二维码关注公众号,回复:
4301758 查看本文章
3.查重和去重
4.存入数据库
核心方法
process_item(self, item, spider):
必须要实现的方法,Item Pipeline会默认调用这个方法对Item进行处理。例如:清洗数据,存库。必须返回Item的类型或者抛出异常。
参数:
item 被处理的对象
spider 生成该item的spider
还可以有如下自定义的方法:
def open_spider(self,spider): pass
Spider开启时调用,做初始化操作,例如:数据库连接
def close_spider(self,spider): pass
Spider关闭时调用,例如:关闭数据库