Scrapy爬虫框架结构及工作原理详解


 

scrapy框架的框架结构如下:

组件分析:

ENGINE:(核心):处理整个框架的数据流,各个组件在其控制下协同工作

SCHEDULER(调度器):负责接收引擎发送来的请求,并压入队列,在引擎再次请求时返回

SPIDER(蜘蛛):负责从网页中提取指定的信息,即item并产生对新页面的下载请求

DOWNLOADER(下载器):用于下载网页内容(即发送HTTP请求/接受HTTP请求)并将内容返回给ENGINE

ITEM PIPELINES(项目管道):主要对爬取到的数据进行处理(去重、过滤、清洗),最终保存数据

DOWNLOADER MIDDLEWARES(下载中间件):位于ENGINE和DOWNLOADER中间,处理请求和响应(该组件是反反爬虫的重点)

SPIDER MIDDLEWARES(爬虫中间件):位于SPIDER和ENGINE中间,处理蜘蛛的请求和响应


数据流对象分析:(主要有三)

(1)REQUEST:scrapy中的hettp请求对象

(2)RESPONSE:scrapy中的http响应对象

(3)ITEM:页面爬取到的数据


 工作原理:

(1)、Spiders发送第一个URL给引擎

(2)、引擎从Spider中获取到第一个要爬取的URL后,在调度器(Scheduler)以Request调度

(3)、调度器把需要爬取的request返回给引擎

(4)、引擎将request通过下载中间件发给下载器(Downloader)去互联网下载数据

(5)、一旦数据下载完毕,下载器获取由互联网服务器发回来的Response,并将其通过下载中间件发送给引擎

(6)、引擎从下载器中接收到Response并通过Spider中间件发送给Spider处理

(7)、Spider处理Response并从中返回匹配到的Item及(跟进的)新的Request给引擎

(8)、引擎将(Spider返回的)爬取到的Item给Item Pipeline做数据处理或者入库保存,将(Spider返回的)Request给调度器入队列

(9)、重复第(3)步循环运行直至SCHCULAR中没有REQUEST为止


 总结:这章我们学习了整个scrapy框架的结构及工作原理,小伙伴们清楚了吗?(刚全宿舍去看了复联3,突然发现灭霸并没有那么坏!雷神真tm叼!)

版权声明:本文为518894-lu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/518894-lu/p/9033924.html