1.因为使用的yield,而不是return。parse函数将会被当做一个生成器使用。scrapy会逐一获取parse方法中生成的结果,并判断该结果是一个什么样的类型;

2.如果是request则加入爬取队列,如果是item类型则使用pipeline处理,其他类型则返回错误信息。

3.scrapy取到第一部分的request不会立马就去发送这个request,只是把这个request放到队列里,然后接着从生成器里获取;

4.取尽第一部分的request,然后再获取第二部分的item,取到item了,就会放到对应的pipeline里处理;

5.parse()方法作为回调函数(callback)赋值给了Request,指定parse()方法来处理这些请求 scrapy.Request(url, callback=self.parse)

6.Request对象经过调度,执行生成 scrapy.http.response()的响应对象,并送回给parse()方法,直到调度器中没有Request(递归的思路)

7.取尽之后,parse()工作结束,引擎再根据队列和pipelines中的内容去执行相应的操作;

8.程序在取得各个页面的items前,会先处理完之前所有的request队列里的请求,然后再提取items。

9.这一切的一切,Scrapy引擎和调度器将负责到底。

转载于:https://www.cnblogs.com/huwei934/p/6970951.html

scrapy基础知识之 parse()方法的工作机制思考:相关推荐

  1. 计算机硬件基础知识txt,计算机硬件基础知识及使用方法简介

    --------------------------------------------------正文内容开始-------------------------------------------- ...

  2. 计算机硬件的使用知识,计算机硬件基础知识及使用方法简介.doc

    计算机硬件基础知识及使用方法简介.doc PAGE PAGE 1 计算机硬件基础知识及使用方法简介 1.1 计算机的发展历程 现代电子计算机技术的飞速发展,离不开人类科技知识的积累,离不开许许多多热衷 ...

  3. 转移印花技术基础知识及应用方法

    转移印花技术基础知识及应用方法 1. 转移印花法特点 转移印花图案具有花型逼真.花纹细致.层次清晰.立体感强等特点,可印制自然风景及艺术性强的图案. 转移印花设备具有结构简单.占地小.投资少.经济效率 ...

  4. blendShape基础知识与创建方法

    由于本人最近一直在研究MetaHuman的blendShape,所以想要将了解到的知识整理汇总,也是为了学习到更多的知识,特此写了这篇文章,希望大家共同进步[ps.1].注意,阅读本文需要掌握一定的M ...

  5. 小学计算机基础知识总结,小学计算机教师个人工作总结

    小学计算机教师个人工作总结一 记得20XX年刚任教信息技术课的我,刚开始觉得这门课的教学应该不会有很大的困难,在教学中只要让学生初步学会计算机的使用就可以了.可在教学过程中,情况并不是自己想象的那么简 ...

  6. 软件测试基础知识-测试用例设计方法

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 黑盒测试: 1.等价类划分 等价类划分是将系统的输入 ...

  7. 人工智能基础——知识的表示方法,语义网络表示方法

    语义网络 以个体为中心的组织知识的语义联系 实例联系 泛化联系 聚集联系 属性联系 以谓词或关系为中心组织知识的语义联系 以关系(谓词)为中心组织知识的语义联系 连接词在语义网络中的表示方法 合取 析 ...

  8. scrapy基础知识之制作 Scrapy 爬虫 一共需要4步:

    1.新建项目 (scrapy startproject xxx):新建一个新的爬虫项目 2.明确目标 (编写items.py):明确你想要抓取的目标 3.制作爬虫 (spiders/xxspider. ...

  9. 队列的基础知识及实现方法

    队列 在网上又看到关于队列的知识点,有很多,但都比较琐碎,有的还有些错误,为方便自己理解,特整理出一篇,顺便也加强记忆:当然,也附上我参考的博客地址: http://www.cnblogs.com/k ...

最新文章

  1. 仿人智能控制器的参数简化(已发表于《计算机测量与控制》2013年第4期)
  2. 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
  3. Android中ListView与RadioButton结合----自定义单选列表
  4. 【Win10开发】自定义标题栏
  5. linux more 下一页_Linux学习笔记
  6. 40岁的程序员还能找到工作吗_如果程序员已经到三十岁了,那他还能找到满意的工作吗?...
  7. mysql 开发规范_专业级的MySQL开发设计规范及SQL编写规范
  8. JAXB –新手的观点,第1部分
  9. java实现团购功能_[Java教程]jquery组件团购倒计时功能
  10. mybatis多个foreach_mybatis的foreach 删除多条使用汇总
  11. Codevs 1215 迷宫
  12. 通​过​C​a​c​t​i​监​控​w​i​n​d​o​w​s​资​源
  13. 计算机应用专业,报软考应该选什么?
  14. 利用模版元编程将传统冒泡排序性能提升两倍以上
  15. 五行俱全才能成为合格的游戏系统策划!
  16. 案例:世界500强如何打造汽车后市场智慧门店
  17. Telegram 查看下载保存的文件
  18. 云帆文档管理系统版本更新说明:v4.6.0
  19. 穿冰丝很凉快,是有降温作用吗?穿戴冰丝衣物要注意哪些?
  20. linux内核级调用时间delay函数,及常用文件头

热门文章

  1. 关于log4net使用中遇到的错误
  2. 文件服务器结构,文件服务器结构
  3. 数组,结构体初始化为0
  4. python netsnmp_使用 Net-SNMP 和 IPython
  5. 中兴手机数据通道打不开_我用的是中兴手机,里面有流量,但是数据开不了,应该怎么办呢?...
  6. 脑细胞膜等效神经网路训练代码
  7. 国产系统安装安卓应用教程
  8. 神经网络模拟逻辑推理-演绎推理
  9. selenium 文件下载
  10. python网络编程例子