千家信息网

scrapy架构初探

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,scrapy数据流Scrapy中的数据流由执行引擎控制,下面的原文摘自Scrapy官网,我根据猜测做了点评,为进一步开发GooSeeker开源爬虫指示方向:The Engine gets the fi
千家信息网最后更新 2026年10月31日scrapy架构初探

scrapy数据流

Scrapy中的数据流由执行引擎控制,下面的原文摘自Scrapy官网,我根据猜测做了点评,为进一步开发GooSeeker开源爬虫指示方向:

  • The Engine gets the first URLs to crawl from the Spider and schedules them in the Scheduler, as Requests.

URL谁来准备呢?看样子是Spider自己来准备,那么可以猜测Scrapy架构部分(不包括Spider)主要做事件调度,不管网址的存储。看起来类似GooSeeker会员中心的爬虫罗盘,为目标网站准备一批网址,放在罗盘中准备执行爬虫调度操作。所以,这个开源项目的下一个目标是把URL的管理放在一个集中的调度库里面。

  • The Engine asks the Scheduler for the next URLs to crawl.

看到这里其实挺难理解的,要看一些其他文档才能理解透。接第1点,引擎从Spider中把网址拿到以后,封装成一个Request,交给了事件循环,会被Scheduler收来做调度管理的,暂且理解成对Request做排队。引擎现在就找Scheduler要接下来要下载的网页地址。

  • The Scheduler returns the next URLs to crawl to the Engine and the Engine sends them to the Downloader, passing through the Downloader Middleware (request direction).

从调度器申请任务,把申请到的任务交给下载器,在下载器和引擎之间有个下载器中间件,这是作为一个开发框架的必备亮点,开发者可以在这里进行一些定制化扩展。

  • Once the page finishes downloading the Downloader generates a Response (with that page) and sends it to the Engine, passing through the Downloader Middleware (response direction).

下载完成了,产生一个Response,通过下载器中间件交给引擎。注意,Response和前面的Request的首字母都是大写,虽然我还没有看其它Scrapy文档,但是我猜测这是Scrapy框架内部的事件对象,也可以推测出是一个异步的事件驱动的引擎,就像DS打数机的三级事件循环一样,对于高性能、低开销引擎来说,这是必须的。

  • The Engine receives the Response from the Downloader and sends it to the Spider for processing, passing through the Spider Middleware (input direction).

再次出现一个中间件,给开发者足够的发挥空间。

  • The Spider processes the Response and returns scraped items and new Requests (to follow) to the Engine.

每个Spider顺序抓取一个个网页,完成一个就构造另一个Request事件,开始另一个网页的抓取。

  • The Engine passes scraped items and new Requests returned by a spider through Spider Middleware (output direction), and then sends processed items to Item Pipelines and processed Requests to the Scheduler.

引擎作事件分发

  • The process repeats (from step 1) until there are no more requests from the Scheduler.

持续不断地运行。


引擎 事件 调度 准备 开发 中间件 爬虫 网址 网页 这是 任务 开发者 数据 数据流 文档 框架 目标 罗盘 循环 猜测 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州宏创互联网科技 朗涯互联网科技 上海致骋互联网科技 北京禾田雨橡互联网科技 互联网科技公司名称 博兴的互联网电子科技公司 欧洲十大科技互联网公司 消费医药和互联网科技 互联网新科技动漫ppt素材 东莞新华互联网科技学校 互联网科技创新的路径 群盈汇互联网科技有限公司 工业互联网展湾科技股份有限公司 富国互联网金融科技混合基金 互联网科技接地气 国产互联网科技公司 中国科技和美国互联网 黑龙江互联网科技公司 恒生科技互联网指数十大成分股 小牛互联网科技有限公司地址 互联网科技财经 世界互联网领先科技成果 北京互联网络科技有限公司 天下捷融互联网科技 坤平互联网科技 上海乐五互联网科技有限公司 银川新华互联网科技学校是国营吗 互联网科技和医药行业 青岛易易互联网科技 互联网 科技节活动 微视频大赛
0