Scrapy的整个数据处理流程由Scrapy引擎进行控制,其主要的运行方式为:

  1. 引擎打开一个域名,蜘蛛处理这个域名,然后获取第一个待爬取的URL。
  2. 引擎从蜘蛛那获取第一个需要爬取的URL,然后作为请求在调度中进行调度。
  3. 引擎从调度那获取接下来进行爬取的页面。
  4. 调度将下一个爬取的URL返回给引擎,引擎将他们通过下载中间件发送到下载器。
  5. 当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎。
  6. 引擎收到下载器的响应并将它通过蜘蛛中间件发送到蜘蛛进行处理。
  7. 蜘蛛处理响应并返回爬取到的项目,然后给引擎发送新的请求。
  8. 引擎将抓取到的项目项目管道,并向调度发送请求。
  9. 系统重复第二部后面的操作,直到调度中没有请求,然后断开引擎与域之间的联系。

转载于:https://www.cnblogs.com/bushe/p/4003002.html

scrapy 工作流程相关推荐

  1. 爬虫之scrapy工作流程

    Scrapy是什么? scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量代码,就能够快速的抓取到数据内容.Scrapy 使用了 Twisted['twɪstɪd] ...

  2. scrapy工作流程

    一:scrapy 工作原理介绍: 千言万语,不如一张图来的清晰: 解释说明: 1.从优先级队列中获取request对象,交给engine 2.engine将request对象交给下载器下载,期间会通过 ...

  3. python爬虫之Scrapy框架的post请求和核心组件的工作 流程

    python爬虫之Scrapy框架的post请求和核心组件的工作 流程 一 Scrapy的post请求的实现 在爬虫文件中的爬虫类继承了Spider父类中的start_urls,该方法就可以对star ...

  4. Scrapy框架的概念、作用和工作流程

    1. scrapy的概念         Scrapy是一个Python编写的开源网络爬虫框架.它是一个被设计用于爬取网络数据.提取结构性数据的框架. Scrapy是一个为了爬取网站数据,提取结构性数 ...

  5. Scrapy框架的学习(1.scrapy的概念以及scrapy的工作流程)

    scrapy的概念 1.为什么要学习Scrapy?  因为会让我们的爬虫更快.更强 2.什么是scrapy? (1) Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现 ...

  6. 17-爬虫之scrapy框架五大核心组件工作流程及下载中间件介绍04

    scrapy的五大核心组件 引擎(Scrapy) 对整个系统的数据流进行处理, 触发事务(框架核心). 调度器(Scheduler) 用来接受引擎发过来的请求. 由过滤器过滤重复的url并将其压入队列 ...

  7. 一、scrapy爬虫框架——概念作用和工作流程 scrapy的入门使用

    scrapy的概念和流程 学习目标: 了解 scrapy的概念 了解 scrapy框架的作用 掌握 scrapy框架的运行流程 掌握 scrapy中每个模块的作用 1. scrapy的概念 Scrap ...

  8. 爬爬爬——了解scrapy框架工作流程

    丧丧的春节过了,又到了学习的季节--熟悉scrapy框架 为什么选择用框架: 不用重复造轮子,scrapy 底层是异步框架 twisted ,吞吐量高. 1.scrapy 的基础概念: scrapy ...

  9. scrapy的工作流程

    scrapy的工作流程如下图所示 整个工作流程, 爬虫中起始的url构造成request对象, 并传递给调度器. 引擎从调度器中获取到request对象. 然后交给下载器 由下载器来获取到页面源代码, ...

最新文章

  1. 转:AbstractQueuedSynchronizer的介绍和原理分析
  2. java程序包不存在_第一章 Java语言简介
  3. java sql变更跟踪_如何使用Spring动态跟踪数据库更改?
  4. 使用左 右 全 内连接及使用where条件语句的区别
  5. VB.NET工作笔记006---用visual studio2017 编写RESTFUL API
  6. python自定义函数名_使用自定义名称创建Python动态函数
  7. oracle 12.1.0.1.0,oracle_linux安装oracle_12.1.0
  8. 计算机辅助个人当面访问,优课联盟——共建共享,学分互认
  9. 静态页面模板,比较不错的网站,效果比较多,html代码可以直接下载即可
  10. 隐形缝针法_裤腰大了怎么改小的隐形针法
  11. python函数调用:带()和不带()的区别
  12. 两个服务器微信消息模板发不出去,小程序模板消息调用send大部分情况下发送不出去,但有时又可以发送,什么情况?...
  13. Android,什么是MVP模式?
  14. 柱坐标系与直角坐标系的转换
  15. oracle 10g ora12560,OracleORA-12560解决方法
  16. 中值滤波(python实现)
  17. db2数据库date和timestamp日期转换to_char()函数
  18. Wireshark lua 插件简介
  19. Web学习(五)中期项目-简易拳皇
  20. CSP认证 202203-1 未初始化警告

热门文章

  1. LeetCode 2086. 从房屋收集雨水需要的最少水桶数(贪心)
  2. LeetCode 1880. 检查某单词是否等于两单词之和
  3. LeetCode 1637. 两点之间不包含任何点的最宽垂直面积
  4. LeetCode 1190. 反转每对括号间的子串(栈)
  5. LeetCode 49. 字母异位词分组(哈希)
  6. Java实验方法参数传递与递归_4.3类的结构之二:方法(return,重载,可变个数形参,值传递,递归)...
  7. 机器学习Tensorflow基本操作:线程队列图像
  8. 机器学习回归算法—性能评估欠拟合与过拟合
  9. 2016年10月计算机网络技术,2016年10月自考计算机网络技术练习题及答案(2)
  10. 解决mysql导数据时,格式不对、导入慢、丢数据的问题