• Scrapy爬虫框架(架构图与解析)


    这张图展示了Scrapy的架构和各组件之间的关系

     红色箭头为数据流动方向

     

    数据流(Data Flow)通过引擎来控制,并且经过如下步骤来流动:

    第一步:爬虫(SPIDERS)发送给引擎(ENGINE)一个最初的请求(REQUESTS);
    第二步:引擎在调度程序(SCHEDULER)中安排当前请求,并要求下一个请求进入引擎;
    第三步:调度程序给引擎返回一个请求(当前请求);
    第四步:引擎通过下载中间件将请求发送给下载器(DOWNLODER);
    第五步:一旦完成了页面的下载,下载器就生成一个响应(关于这个页面)并将响应通过下载中间件发送给引擎;
    第六步:引擎接收来自下载器的响应并将响应通过爬虫中间件发送给爬虫;
    第七步:爬虫处理响应并通过爬虫中间件返回裁剪好的数据并伴随一个新的请求给引擎;
    第八步:引擎发送加工项目给数据永久化进行数据的保存,然后将处理过的请求发送给调度程序,并询问是否有下一个请求;
    第九步:这个过程从步骤1开始重复直到调度程序没有请求为止;
    

    组件介绍:

    Engine:引擎是负责控制系统所有组件之间的数据流,和当某些事情发生时触发相应的事件;
    Scheduler:调度程序接收引擎的请求并将这些请求加入队列,以便在之后(也包括引擎)进行输出;
    Downloader:下载器负责抓取网页和将抓取到的数据发送给引擎,然后通过引擎发送给爬虫(Spiders);
    Spiders:用于下载数据的处理加工
    Item Pipeline:数据相关的一个组建,负责清理、验证和持久性(如将项目存储在数据库中);
    Downloader middlewares:用于引擎和下载器之间的信息传递;
    Spider middlewares:用于引擎和爬虫之间的信息传递;
    

     

  • 相关阅读:
    C# Bitmap类型与Byte[]类型相互转化
    我所理解的JavaScript闭包
    从零开始编写自己的C#框架 ---- 系列文章
    巧用Windows 7计划任务设置定时提醒
    vba中MsgBox的参数及用法
    SQL行转列和列转行
    web应用程序 ---- 日志系统的设计
    《代码整洁之道》读书笔记
    使用Excel制作万年历(日历可A4纸打印)
    C#窗体全屏功能
  • 原文地址:https://www.cnblogs.com/cangshuchirou/p/9341869.html
Copyright © 2020-2023  润新知