学习
实践
活动
专区
工具
TVP
写文章

一文读懂 Scrapy 框架,Python爬虫的生产线

前面的一些文章已经将爬虫的基础知识解析了一遍,不过距离实践应用还差一些东西。

用现实世界中的工程做一个比喻吧。

比如说要造一辆汽车各种零件就是我们学习的各种基础知识,但是只有零件是造不出一辆汽车的,除了充足的零件之外,还需要一条运转良好的生产线,这样才能够够保质保量的生产出所需要的汽车

在爬虫程序中的担任生产线这一角色的就是爬虫框架。即Scrapy爬虫框架 。

Scrapy爬虫框架

Scrapy是一个由Python编写的一个开源网络爬虫框架,是一个用于爬取网络数据提取结构性数据的爬虫框架。在2008年6月出现初始版本,遵循BSDLicense

主要组件

1.Scrapy引擎Engine):Scrapy引擎用来控制整个系统数据处理流程

2.调度器Scheduler):调度器从Scrapy引擎接受请求并将请求排序列入队列,并在Scrapy引擎发出请求后返还给它们

3.下载器Downloader):下载器用来抓取网页并将网页内容返还给爬虫(Spiders)。

4.爬虫Spiders):爬虫是由Scrapy用户自定义的用来解析网页并抓取特定URL返回内容的类,简单的说就是用来定义特定网站的抓取和解析规则的爬虫。也就是我们自己编写的关于特定规则的爬虫程序。

5条目管道ItemPipeline):条目管道的主要责任是负责处理由爬虫从网页中抽取的数据条目,它的主要任务是清理重复数据验证是否是所需数据存储数据至数据库

6中间组件Middlewares):中间组件是介于Scrapy引擎和其他组件之间的一个连接框架,主要是为了提供自定义的代码拓展Scrapy的功能,包括下载器中间组件爬虫中间组件

数据处理流程

Scrapy框架的整个数据处理流程Scrapy引擎进行控制,通常的运转流程包括以下的步骤:

1.引擎询问爬虫需要处理哪个网站,并让爬虫提交第一个需要处理的URL。

2.引擎让调度器将需要处理的URL放在队列中。

3.引擎从调度器获取接下来需要爬取的页面。

4.调度器将下一个URL返回给引擎,引擎将它通过下载中间组件发送到下载器

5.当下载器完成一个下载任务之后,响应内容通过下载中间组件发送到引擎;如果下载失败,引擎会通知调度器记录这个URL,然后会再次重新下载

6.引擎收到下载器的响应并将它通过爬虫中间组件发送到爬虫进行处理。

7.爬虫处理响应并返回爬取到的数据条目,此外还要将需要将新的URL发送给引擎。

8.引擎将抓取到的数据条目送入条目管道,把新的URL发送给调度器放入队列中。

一般的数据处理流程就是如此,当所有的 URL全部处理完成之后,从第二步到第八步的循环进程就会停止

今天就先来解释一下 Scrapy 框架的知识与数据处理流程。

如果想学习更多科技知识,可以点击关注

如果对文章中的内容有什么困惑的地方,可以在评论区提出自己的问题,学记同大家一起交流,解决各种问题,一起进步。

青年学记 陪伴着各位青年

作者:青年学记 一名不断进步的程序

一起学习 一起进步

走向自立

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191223A0P5TE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券