Python爬虫框架scrapy的用途及组件认识

Python爬虫框架scrapy的用途及组件认识

今天简述一下Scrapy框架的大致处理流程,以方便大家更好的理解Scrapy的运行过程.

Scrapy是一个快速、高层次屏幕抓取和web抓取python爬虫框架,主要用于抓取特定web站点的信息并从页面中提取结构化的数据。
由于Scrapy的框架特性,也支持开发者根据自己的需求对框架进行修改,方便开发者开发出更适合的python爬虫。除此之外,Scrapy还提供了多 种类型的爬虫基类,包括BaseSpider、sitemap爬虫等等,最新版本同时也提供了web2.0爬虫的支持。下面我们一起来详细的了解一下 Scrapy吧。
Scrappy的用途
Scrapy用途非常广泛,除了抓取web站点信息并从页面提取结构化数据外,还可用于数据挖掘、监测、自动化测试、信息处理和历史片(历史记录)打包等等。
Scrapy的组件
1、引擎,用来处理整个系统的数据流处理,触发事务,引擎是一个项目的核心关键。
2、调度器,用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。
3、下载器,用于下载网页内容,并将网页内容返回给蜘蛛程序。
4、蜘蛛(item),蜘蛛是主要干活的,用它来制订特定域名或网页的解析规则。
5、项目管道,负责处理有蜘蛛从网页中抽取的项目,主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
6、下载器中间件,位于Scrapy引擎和下载器之间的钩子框架(回调函数),主要是处理Scrapy引擎与下载器之间的请求及响应。
7、蜘蛛中间件,介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。
8、调度中间件,介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。

Scrapy数据处理流程
Scrapy的数据处理由Scrapy引擎进行控制,其处理流程为:
1、引擎打开一个域名时,蜘蛛处理这个域名,并让蜘蛛获取第一个爬取的URL。
2、引擎从蜘蛛那获取第一个需要爬取的URL,然后作为请求在调度中进行调度。
3、引擎从调度那获取接下来进行爬取的页面。
4、调度将下一个爬取的URL返回给引擎,引擎将他们通过下载中间件发送到下载器。
5、当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎。
6、引擎收到下载器的响应并将它通过蜘蛛中间件发送到蜘蛛进行处理。
7、蜘蛛处理响应并返回爬取到的项目,然后给引擎发送新的请求。
8、引擎将抓取到的项目项目管道,并向调度发送请求。
9、系统重复第二部后面的操作,直到调度中没有请求,然后断开引擎与域之间的联系。

猜你喜欢

转载自blog.csdn.net/weixin_43022017/article/details/84799268
今日推荐