美文网首页
Scrapy流程及模块介绍

Scrapy流程及模块介绍

作者: 非你不可_a036 | 来源:发表于2019-08-27 17:19 被阅读0次

参考资料: python网络爬虫开发实战

1.scrapy的优势

Scrapy框架具有高效爬取速率,相关扩展组件多,可配置和可扩展程度非常高,几乎可以应对所有反爬网站,是目前Python中使用最广泛的爬虫框架。

Scrapy是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,架构清晰,模块之间耦合程度低,可扩展性强,可以灵活完成各种需求。

高内聚

模块内部的元素, 关联性越强,则内聚性越高,scrapy中每个模块中实现的是单一的功能,能独立完成该组件的功能,scrapy中的每一个组件都能单独实现自己的功能,并能很好的被其他模块使用,实现了高内聚。

低耦合

不使用engine模块,scrapy的四个模块之间关联性比较强,耦合性比较高,使用engin模块,降低模块之间的关联性,修改其中一个模块对其他模块的影响不大,两个中间件的使用减少了耦合,实现低耦合。

2.运行流程

(1)Scrapy框架以Engine(引擎)为核心。

(2)引擎从Spiders(爬虫文件)获取URL,发送给Scheduler(调度器)。

(3)Scheduler会把请求存储到Scrapy自带队列中。

(4)Engine再次请求时,Scheduler会返回队列中的请求。

(5)Engine把从Scheduler接收到的请求传递到Downloader(下载器)。

(6)Downloader返回Response原文到Engine,由Engine传给Spiders。

(7)Spiders对原文进行处理后,生成Request或者Item。会重复把Rquest传给Engine,若是得到Item,则会传给Item Pipeline(管道)

3.Engine

引擎,处理整个系统的数据流处理、触发事务,是整个框架的核心。

4.Scheduler

调度器,接收引擎发过来的请求并将其加入队列,在引擎再次请求时将请求提供给引擎。

5.ItemPipeline

项目管道,负责处理Spiders从网页中获取的Item,主要任务是清洗、验证和数据存储。

6.Spiders

蜘蛛,其内定义了爬取的逻辑和网页的解析规则,主要负责解析响应并生成提取结果和新的请求。

7.Downloader

下载器,下载网页内容并返回给Spiders。

8.DownloaderMiddlewares

下载中间键,是处理Scrapy(引擎和下载器之间的)请求和响应的钩子框架。

9.SpiderMiddlewares

蜘蛛中间键,位于引擎和蜘蛛之间,主要处理蜘蛛输入的响应和输出结果及新的请求。

相关文章

网友评论

      本文标题:Scrapy流程及模块介绍

      本文链接:https://www.haomeiwen.com/subject/yvksmftx.html