组件:

ENGINE:引擎,框架的核心,其他组件在其控制下协同工作。

SCHEDULER:调度器,负责对SPIDER提交的下载请求进行调度

DOWNLOADER:下载器,负责下载页面,发送HTTP请求/接收HTTP响应

SPIDER:爬虫,负责提取页面数据,并产生对新的页面的下载请求

MIDDLEWARE:中间件,负责对Request对象和Response对象进行处理

ITEM PIPELINE:数据管道,负责对爬取到的数据进行处理

数据流:

REQUEST:Scrapy中HTTP请求对象

RESPONSE:Scrapy中HTTP响应对象

ITEM : 从页面中爬取的一项数据

理解Scrapy爬虫工作原理,以对象在框架中流动的过程解释:

*当SPIDER要爬取URL地址的页面时,需使用该URL构造一个Request对象,提交给ENGINE;

*Request对象随后进入SCHEDULER按照某种算法进行排队,之后某个时间SCHEDULER将其出队,送往DOWNLOADER;

*DOWNLOADER根据Request对象中的URL地址发送一次HTTP请求到网站服务器,之后用服务器返回的HTTP响应构造一个Response对象,其中包含HTML文本

*Response对象最终会被传递到SPIDER的页面解析函数进行处理,从页面中提取的数据封装为ITEM提交给ENHINE,之后被送到ITEMPIPLINES进行处理,最终可能以某种形式存

储,另一方面页面解析函数还会从页面中提取URL,构造新的Request对象;

最新文章

  1. io.js的服務器突破
  2. sql 生成指定相同数量数据
  3. 关于Git的网址
  4. es6新特性(一)
  5. wordpress /wp-content/plugins/wp-symposium/server/php/UploadHandler.php File Arbitrary Upload Vul
  6. 15个关于Chrome的开发必备小技巧
  7. Java算法-希尔排序
  8. [置顶] 有关ListIterator接口的add与remove方法探究
  9. Webpack学习笔记(一)
  10. java中关于转义字符的一个bug
  11. Hadoop基础知识串烧
  12. 用java实现的英汉词典
  13. Django 分页器
  14. R中sort(), rank(), order()
  15. OSLab多进程
  16. Java POI 3.17导出EXCEL并下载(带进度条提示)
  17. 每天学一点easyui②
  18. Linux while 获取键盘输入退出
  19. 关于直播学习笔记-005 nginx-rtmp、sewiseplayer
  20. .NET/C# 使用反射调用含 ref 或 out 参数的方法

热门文章

  1. Java实现 LeetCode 257 二叉树的所有路径
  2. Java实现 LeetCode 55 跳跃游戏
  3. Android如何使用SharedPreferences轻量级储存
  4. Java实现LeetCode_0014_LongestCommonPrefix
  5. java实现杨辉三角系数
  6. DDD之4聚合和聚合根
  7. 有没有人想和我一起编写 Clear Writer 的?
  8. range用法(倒序取值)
  9. .Net微服务实战之DevOps篇
  10. ca70a_c++_重载函数_实参类型转换