scrapy爬虫原理以及抓取流程介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

scrapy爬虫原理以及抓取流程

不少接触爬虫的人都应该听说过Scrapy,Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

作为一种爬虫语言,Scrapy有什么特点呢?

首先,Scrapy 使用Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。

其次,Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

Scrapy 使用了Twisted'twɪstɪd异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。

那么,scrapy爬虫原理是什么呢?

先放上Scrapy的原理图:

如上图所示,绿色的箭头表示的是数据的流动方向。

通过看上面的示意图,我们可以看出最主要的核心部件是Scrapy Engine,;另外还有Scheduler + Downlodaer + Spiders + Item Pipeline 四个功能部件,除此之外还有自己配置的Downloader Middleware+Spider Middleware两个可自由配置的拓展中间件。

1.Scrapy Engine

这是Scrapy的爬虫核心,主要负责控制系统各个部件之间的data flow,以及当特定事件发生的时候触发event。

2.Scheduler

接受engine发来的requests放入队列中,当engine要求的时候再提供给engine。3.Downloader

负责拉取下载page并返给engine,engine之后再传递给Spiders

4.Spider

用户自行编写的代码类,这部分的用户代码主要完成解析response并提取item,或者是跟进页面中获取的额外的link url。

5、Item Pipeline

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

6、Downloader Middlewares

位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应

7、Spider Middlewares

介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。

8、Scheduler Middewares

介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。

它的运行流程一般是这样子的:

1、引擎从调度器中取出一个链接(URL)用于接下来的抓取

2、引擎把URL封装成一个请求(Request)传给下载器

3、下载器把资源下载下来,并封装成应答包(Response)

4、爬虫解析Response

5、解析出实体(Item),则交给实体管道进行进一步的处理

6、解析出的是链接(URL),则把URL交给调度器等待抓取

相关文档
最新文档