您的位置:首页 > 其它

框架的使用(五):scrapy

2017-03-12 21:06 99 查看
scrapy中的Pipeline

详细的介绍scrapy中的Pipeline,大家都是知道scrapy的,那么,你是否全部的明白scrapy中的pipeline,那么今天将是详细的介绍一下这个话题

pipeline(item pipeline项目管道):负责处理蜘蛛从网页上抽取的项目,他的主要的任务是清晰,验证和储存数据。当页面被蜘蛛解析后,并将发送到项目管道,并经过几个特定的次序处理数据。

当然,你要是想细致的了解这块的知识,你需要了解他的整个的爬取流程是怎么样的,你就可以很清楚的明白了

爬取流程:



讲解:

1:爬取流程

上图绿线是数据流向,,首先从初始的URL开始,Scheduler会将其给Downloader进行下载,下载之后会交给spider进行分析,spider分析后出来俩种结果,,一种是需要进一步抓取的链接,例如:分析到的“下一页”的链接,这些东西会被传回scheduler:另一种是需要保存的数据,他们则被送到item pipeline那里进行后期的处理(详细分析,过滤,存储等),,另外。在数据流动的通道还可以安装各类中间件,进行必要的处理。

2:数据流

scrapy中的数据流由执行引擎控制,其过程如下

1:引擎打开一个网站(open a domain),找到处理该网站的spider并向spider请求第一个要爬取的URL。

2:引擎从spider获取到第一个要爬取的url并在调度器(scheduler)以及Reques调度、

3::引擎向调度器请求下一个要爬取的url

4:调度器返回下一个要爬取的url给引擎,引擎将url通过下载中间件转发给下载器

5:一旦页面下载完毕之后,下载器会生成一个该页面的Response ,并将其通过下载中间件发送给引擎,通过spider处理,并且返回爬取的item以及新的request给引擎

6:引擎从下载器中接收新的response并通过spider中间件发送给spider,spider处理response返回新的item及新的request。

7:重复直到调度器中没有更多的request,引擎关闭该网站



掌握了上面的知识点 ,恭喜你,你可以很容易的接受下面的讲解了

当item在spider中被收集之后,它将会被传递到Item pipeline,一些的组件将按照一定的顺序执行对item的处理

每个item pipeline 组件是实现简单方法的Python的类,他们接收到item并进行一些行为,同时也决定item是否继续的通过pipeline,或者是被丢弃而不再进行处理

以下是item pipeline 的一些典型的运用:

1:清理HTML数据

2:验证爬取的数据(检查item包含某些字段)

3:重查(或者是丢弃)

4:将爬取的数据保存在数据库中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: