美文网首页
Scrapy架构概览及数据流

Scrapy架构概览及数据流

作者: HCZd | 来源:发表于2019-07-20 21:01 被阅读0次
Scrapy架构概览图

Scrapy 架构概览

1、Scrapy Engine
  Scrapy的核心引擎,负责控制数据在系统所有组件中的流动,并在相应动作发生时触发事件,相当于整个框架的总指挥。

2、调度器
  调度器(Scheduler)可以被看作一个优先级队列。它从核心引擎接受request并将它们入队,以便之后引擎请求它们时按照优先级提供给引擎。

3、下载器
  下载器(Download)负责和网络交,主要作用是获取页面数据并提供给引擎,而后提供给spider做解析,下载器在整个Scrapy架构中应该是负担最重的组件,由于其需要和网络交互,直接影响Scrapy的爬取效率。

4、Spiders
  Spiders是Sprapy用户编写用于分析response并提取item(即获取到的item)或额外跟进URL的类。对用户编写爬虫而言,它是最重要的组件。用户可以在同一个项目中编写多个spider,每个spider负责处理一个特定(或一些)的网站。

5、Item Pipeline
  Item Pipeline负责处理被spider提取出来的Item。典型的处理有:清理、验证及持久化(如存储数据)。

6、下载器中间件
  下载器中间件(Download Middlewares)是在核心引擎及下载器之间的特定钩子,负责处理引擎传递给下载器的request和下载器传递给引擎的response。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。

7、爬虫中间件
  爬虫中间件(Spider Middlewares)是在核心引擎及spider之间的特定钩子,处理spider的输入(response)和输出(items及requests)。其提供了一个简便的机制,过插入自定义代码来扩展Scrapy功能。

Scrapy 数据流详解

当启动Scrapy爬虫时,Scrapy 会产生以下几个动作:

(1) 引擎将start_urls列表中的URL加近调度器(Scheduler)调度。如果重写了start_urls方法,就将最新方法中的URL加近调度器。

(2) 引擎向调度器请求下一个要爬取的URL。

(3) 调度器给引擎返回下一个要爬取的URL,引擎将URL通过下载中间件【请求(request)方向】转发给下载器(Downloader)。

(4) 一旦页面下载完毕,下载器生成一个该页面的response,并将其通过下载中间件【返回(response)方向】发送给引擎。

(5) 引擎将下载器中接收到的response并通过爬虫中间件(输入方向)发送给spider处理。

(6) spider根据编写的提取逻辑,处理response并给引擎返回爬取到的Item及(根据规则跟进的url)新的request。

(7) 引擎将(spider返回的)爬取到的Item给Item Pipeline,将(spider返回的)request给调度器。

(8) 从第二步重复直到调度器中没有更多的request,引擎关闭该爬虫。

每天进步一点点, To bend over backwards!

相关文章

  • scrapy_架构概览

    架构概览 概述 接下来的图表展现了Scrapy的架构,包括组件及在系统中发生的数据流的概览(绿色箭头所示)。 下面...

  • Scrapy架构概览及数据流

    Scrapy 架构概览 1、Scrapy EngineScrapy的核心引擎,负责控制数据在系统所有组件中的流动,...

  • Spider基础

    scrapy scrapy架构 框架解读 1.Scrapy Engine: 引擎负责控制数据流在系统中所有组件中流...

  • Scrapy框架(下载项目图片以及实现爬虫数据持久化保存)scr

    安装 Scrapy 框架 pip3 install Scrapy Scrapy架构图(绿线是数据流向): Scra...

  • scrapy架构详解

    Scrapy架构概览 要探究清楚Spider Middleware,首先得对Scrapy框架的整体架构有个大致的认...

  • Scrapy入门

    Scrapy架构图(绿线是数据流向) Scrapy Engine(引擎): 负责Spider、ItemPipeli...

  • 8-Scrapy框架汇总

    scrapy架构 Scrapy主要组件1、引擎(Scrapy): 用来处理整个系统的数据流处理, 触发事务(框架核...

  • scrapy学习记录

    scrapy源码 scrapy架构 Engine 引擎,处理整个系统的数据流处理、触发事务,是整个框架的核心 It...

  • Scrapy学习篇(一)之架构

    概览 在具体的学习scrapy之前,我们先对scrapy的架构做一个简单的了解,之后所有的内容都是基于此架构实现的...

  • 2020-07-19--scrapy框架1

    概览 在具体的学习scrapy之前,我们先对scrapy的架构做一个简单的了解,之后所有的内容都是基于此架构实现的...

网友评论

      本文标题:Scrapy架构概览及数据流

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