框架的使用(五):scrapy

    xiaoxiao2021-03-25  75

    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:将爬取的数据保存在数据库中

    转载请注明原文地址: https://ju.6miu.com/read-36681.html

    最新回复(0)