Scrapy架构概述

Scrapy架构概述



    1, 从最初自己编写的spiders,获取到start_url,并且封装成Request对象。

    2,通过engine(引擎)调度给SCHEDULER(Requests管理调度器)。

    3,SCHEDULER管理ENGINE传递过来的所有Requests,通过优先级,传递给ENGINE。

    4,ENGINE 将传递过来的Request对象传递给Downloader(下载器),但是在传递之间会通过MiddleWare(中间件)对Requests进行包装,添加头部,代理IP之类的。

    5,Downloader(下载器)将包装好的Requests进行下载,并将下载后的Response对象传递给Engin。

    6,Engin将Response对象传递给自己编码的Spider,但是中间仍有对于Response加工的中间件,在spider中通过自己编写的规则对内容进行提取。

    7,提取完成后会产生两种对象,一个是自己想要的数据,存储在Item中;另一个是想要继续爬取的URL,包装成Request一并传递给Engine

    8,Engine获取到 7 传递过来的Item,将其传递给ItemPipelines(Item管道,将Item中数据写入存储);获取到 7 传递来的Requests对象,跟之前一样,交给SCHEDULER进行管理调度

    9,SCHEDULER中没有Requests对象需要下载时,爬虫关闭。

时间: 2024-12-28 16:09:58

Scrapy架构概述的相关文章

JavaEE体系架构概述、MyBatis总结

JavaEE体系架构概述 java EE是sum公司发布的标准企业级应用规范集合,它提供了一个多层结构的分布式应程序模型,是开发基于网络的企业级应用首选平台.Java EE技术平台的核心思想是“容器”加组件 事务:有明确边界的一组序列,在应用程序中一个请求对应一个事务,当请求发送时,事务开始,当请求结束,事务也就结束.总的来说,事务有四个特性:1.原子性,一个请求要么成功,要么失败,不会再有其他情况:2.一致性,事务处理需要的和得到的时相同的:3.持久性,事务处理的结果时确认的.持久的,如果需要

大型互联网架构概述

本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置,最佳实践以及源码来剖析各个组件,这个自然是极好的.由于笔者时间以及知识有限,有很多知识没有在工作中亲自实践的机会.所以有些地方语焉不详,还请大家多多指教. 大型互联网架构 解决问题的通用思路是将分而治之(divide-and-conquer),将大问题分为若干个小问题,各个击破.在大型互联网的架构实践中,无一不体现这种思想. 架构目标 低成本:任何公司存在的价值都是为了获取商业利益.在可能的情况下,希望一切都是低成本的.

基于ONOS的SDN-IP架构概述篇

编者按:SDN-IP是ONOS上的一个应用程序,允许软件定义网络使用标准的边界网关协议(BGP)连接到外部网络.从BGP角度看,SDN网络表现为单一的自治系统(AS),其行为与任何传统的AS一样.基于AS的SDN-IP应用提供BGP和ONOS之间的集成整合机制,在协议层SDN-IP的行为作为一个有规则的BGP发言人.从ONOS的角度来看,它只是使用其服务,在SDN数据平面安装和更新相应的转发状态的应用程序. 1 架构目标  1.1 SDN-IP设计目标 (1)兼容性Compatibility:S

微信牛牛平台制作服务器端架构概述

微信牛牛平台制作服务器端架构概述,平台制作教程联系QQ:212303635,官方网站(aqiulian.com) 架构的分析模型 一. 讨论的背景 现代电子游戏,基本上都会使用一定的网络功能.从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序.因此,游戏服务器端软件的架构,本质上也是游戏服务器这个特定领域的软件架构. 软件架构的分析,可以通过不同的层面入手.比较经典的软件架构描述,包含了以下几种架构: 运行时架构--这种架构关心如何解决运行效率问题,通常以程序进程图

LAMP+LNMP(一) LAMP架构概述

一.LAMP架构概述 LAMP就是 Linux.Apache(httpd).MySQL.PHP四个东东的统称,我们常见的大部分网站都是由这个体系提供的,比如google.Taobao.51CTO等等.其中 Linux是操作系统,是其他三个东东的宿主,企业中一般使用CentOS7.CentOS6等等. Apache是直接面对用户的,用户发送http请求后由他决定提供哪些相应的内容. MyAQL是一种关系型数据库管理系统,你可以把他简单理解为多个大型的Excel表,他记录了网站中文字的东西,比如用户

Linux集群架构概述

Linux集群架构概述 根据功能划分:两大类:高可用和负载均衡高可用集群通常为两台服务器,一条工作,另外一台作为冗余,当提供服务的机器宕机,(rongyu)冗余将接替继续提供服务(适合不能出现宕机的服务器)实现高可用的开源软件有:heartbeat.keeplived负载均衡集群,需要有一台服务器作为分发器,他负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2实现负载均衡的开源软件有 LVS.keepalivd.haproxy

1.微服务架构概述

                                          微服务架构概述 1.0单体架构是什么?         一个归档包包含了应用所有功能的应用程序, 我们通常称之为单体应用. 架构单体应用的架构风格, 我们称之为单体架构, 这是一种比较传统的架构风格. 1.1. 单体应用架构存在的问题 复杂性逐渐变高 技术债务逐渐上升 部署速度逐渐变慢 阻碍技术创新 无法按需伸缩 1.2. 如何解决单体应用架构存在的问题 1.3. 什么是微服务 Martin Fowler:简而言

scrapy架构介绍及几种反反爬

一.scrapy架构介绍 1.结构简图: 主要组成部分:Spider,Pipeline,Downloader,Scheduler,Scrapy Engine() 2.结构详细图: 主要步骤: 原文地址:https://www.cnblogs.com/lyq-biu/p/9745974.html

MySQL逻辑架构概述

1.MySQL逻辑架构 MySQL逻辑架构图 MySQL逻辑架构分四层 1.连接层:主要完成一些类似连接处理,授权认证及相关的安全方案. 2.服务层:在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,SQL接口,SQL解析,SQL分析优化, 缓存查询的处理以及部分内置函数执行(如日期,时间,数学运算,加密)等等.各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等. 3.引擎层:是底层数据存取操作实现部分,由多种存储引擎共同组成.真正负责MySQL中数