千家信息网

如何进行Scrapy框架知识的分析

发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,这篇文章给大家介绍如何进行Scrapy框架知识的分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。今天就写一下,我自己学到的关于框架的知识。Spiders(爬虫):它负责处理所有
千家信息网最后更新 2024年11月29日如何进行Scrapy框架知识的分析

这篇文章给大家介绍如何进行Scrapy框架知识的分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

今天就写一下,我自己学到的关于框架的知识。

  • Spiders(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)


  • Engine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。


  • Scheduler(调度器):它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。


  • Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理


  • ItemPipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.


  • Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。


  • Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间


  • 通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

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

scrapy的工作流程,我自己画的图:

1.首先Spiders(爬虫)将需要发送请求的url(requests)经ScrapyEngine(引擎)交给Scheduler(调度器)。

2.Scheduler(排序,入队)处理后,经ScrapyEngine,DownloaderMiddlewares(可选,主要有User_Agent, Proxy代理)交给Downloader。

3.Downloader向互联网发送请求,并接收下载响应(response)。将响应(response)经ScrapyEngine,SpiderMiddlewares(可选)交给Spiders。

4.Spiders处理response,提取数据并将数据经ScrapyEngine交给ItemPipeline保存(可以是本地,可以是数据库)。

5. 提取url重新经ScrapyEngine交给Scheduler进行下一个循环。直到无Url请求程序停止结束。

这就是基本的原理了,

URL ---> 会包装成requests ---> 引擎 ---> 调度器 --->将这个requests排序,入队列操作后 ---> 引擎 ---> 下载器 ---> 请求网页获取response---> 爬虫spiders(解析响应的数据) ---> 管道(保存数据)

---> 新的URL新的requests(继续循环,直到没有URL)

关于如何进行Scrapy框架知识的分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0