当前位置: > python爬虫 >

python爬虫框架scrapy
栏目分类:python爬虫   发布日期:2019年03月22日 14:57:09   浏览次数:

大家好,我是爱吃苹果的宇文拓,今天我给大家带来的是关于爬虫框架——scrapy

         我们在前面的爬虫学习中,都是用各种请求库,然后结合自己的逻辑思路来完成整个爬虫任务。但是在做大规模抓取的时候就会很头痛了。不过,我们现在有一个很强大的框架,他是异步框架(scrapy)在做大规模抓取的时候我们会用到它整个框架由很多组件构成,然后通过组件引擎传递信息。各个组件各司其职,这个特点,为它是异步的提供了必要的条件。接下来我们来看看整个框架的流程。


1.scrapy架构图



如上图,这就是scrapy框架的架构图,从scheduler开始往右到Downloader再到Spider,最后到Pipeline。整个数据流大致是这样。所有在理解记忆这张架构图的时候,可以从上到右在到下,在到左。仔细观察的朋友会发现各个组件之间还有中间件(middlewares)。

2.组件介绍

Engine:引擎负责控制系统所有组件之间的数据流,并在发生某些操作时触发事件。
Scheduler:调度程序接收来自引擎的请求,并将它们排入队列,并在之后,当Engine需要的时候,将requests发送给engine。
Downloader:下载器负责提取网页并将它们馈送到引擎,然后引擎将其发送给spider。
Spiders:蜘蛛是Scrapy用户编写的自定义类,用于解析响应并从中提取item项目(也称为抓取的项目)或追加的其他请求
Item Pipeline:Item Pipeline负责处理被蜘蛛提取的item, 典型的任务包括清理,验证和持久性(如将项目存储在数据库中)
Downloader middlewares:下载器中间件是位于引擎和下载器之间的特定的钩子,当它们从引擎传递到下载器时处理请求,以及从下载器传递到引擎的响应。


3.scrapy逻辑流

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

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

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

               4. 爬虫(spider)解析Response

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

               6.解析出的是链接(URL),则把URL交给调度器等待抓取,及回到1步骤。



总结:今天我们简单介绍了一下关于scrapy框架的架构图,以及系统逻辑,各个组件的作用等。scrapy框架的功能是很强大的,今天所讲的远远还不够,想要掌握它,我后续很讲解更多关于scrapy的知识。

 

相关热词:

热门关键词
python字符串
     
python教程 python爬虫 python人工智能 Python+大数据 python问答