前面的一些文章已经将爬虫的基础知识解析了一遍,不过距离实践应用还差一些东西。
用现实世界中的工程做一个比喻吧。
比如说要造一辆汽车,各种零件就是我们学习的各种基础知识,但是只有零件是造不出一辆汽车的,除了充足的零件之外,还需要一条运转良好的生产线,这样才能够够保质保量的生产出所需要的汽车。
在爬虫程序中的担任生产线这一角色的就是爬虫框架。即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 框架的知识与数据处理流程。
如果想学习更多科技知识,可以点击关注。
如果对文章中的内容有什么困惑的地方,可以在评论区提出自己的问题,学记同大家一起交流,解决各种问题,一起进步。
青年学记 陪伴着各位青年
作者:青年学记 一名不断进步的程序猿
一起学习 一起进步
走向自立
领取专属 10元无门槛券
私享最新 技术干货