1. scrapy的概念

        Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架

Scrapy 使用了Twisted['twɪstɪd]异步网络框架,可以加快我们的下载速度。

Scrapy文档地址:初窥Scrapy — Scrapy 1.0.5 文档

2. scrapy框架的作用

少量的代码,就能够快速的抓取

3. scrapy的工作流程

3.1 回顾之前的爬虫流程  【需要一个起始url】

3.2 上面的流程可以改写为

3.3 scrapy的流程

scrapy中每个模块的作用:

  • 引擎(engine):负责数据和信号在不同模块间的传递;
  • 调度器(scheduler):实现一个队列,存放引擎发过来的request请求对象;
  • 下载器(downloader):发送引擎发过来的request请求,获取响应,并将响应交给引擎 ;
  • 爬虫(spider):处理引擎发过来的response,提取数据,提取url,并交给引擎 ;
  • 管道(pipeline):处理引擎传递过来的数据,比如存储
  • 下载中间件(downloader middleware):可以自定义的下载扩展,比如设置代理ip;
  • 爬虫中间件(spider middleware):可以自定义request请求和进行response过滤,与下载中间件作用重复

其流程可以描述如下:

  1. 爬虫中起始的url构造成request对象-->爬虫中间件-->引擎-->调度器
  2. 调度器把request-->引擎-->下载中间件--->下载器
  3. 下载器发送请求,获取response响应---->下载中间件---->引擎--->爬虫中间件--->爬虫
  4. 爬虫提取url地址,组装成request对象---->爬虫中间件--->引擎--->调度器,重复步骤2
  5. 爬虫提取数据--->引擎--->管道处理和保存数据

注意:

  • 图中中文是为了方便理解后加上去的
  • 图中绿色线条的表示数据的传递
  • 注意图中中间件的位置,决定了其作用
  • 注意其中引擎的位置,所有的模块之前相互独立,只和引擎进行交互

3.4 scrapy的三个内置对象

  • request请求对象:由url method post_data headers等构成
  • response响应对象:由url body status headers等构成
  • item数据对象:本质是个字典

3.5 scrapy中每个模块的具体作用

注意:

  • 爬虫中间件和下载中间件只是运行逻辑的位置不同,作用是重复的:如替换UA等

Scrapy框架的概念、作用和工作流程相关推荐

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

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

  2. scrapy框架的概念和流程

    1.scrapy框架的概念: 文档地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html Scrapy 使用了Twisted ...

  3. axios拦截器作用及工作流程详解

    axios 拦截器 在请求或响应被then或catch处理之前拦截它们 作用: 主要是在axios请求和响应之前拦截请求和响应数据.拦截器有两种,请求拦截器一般会统一在请求头中添加token.响应拦截 ...

  4. ofbiz各配置文件作用以及工作流程

    2008-04-18 14:35 1.当客户端发出请求时,调用第一个配置文件WEB-INF/controller.xml,根据请求的地址 处理方法1:直接调用java类的方法 <request- ...

  5. 人工智能TensorFlow工作笔记010---TensorFlow 游乐场游戏,了解神经网络主要功能作用_工作流程

    技术交流QQ群[JAVA,C,.NET,BigData,AI]:170933152 看书写程序,边看边写... 看下面这个游戏网站地址,然后看介绍吧.主要是介绍一下,神经网络实现过程. http:// ...

  6. 爬虫工作流程、请求与响应原理、requests库讲解

    爬虫工作流程.请求与响应原理.requests库讲解 爬虫分类主要分为两大板块 web爬虫(浏览器爬虫) APP爬虫(手机端爬虫) 在这两大板块中又可以把爬虫归类为聚焦爬虫和通用爬虫 聚焦爬虫:针对某 ...

  7. Redis——Redis主从复制(工作流程详解)

    Redis主从复制 主从复制简介 主从复制的概念 主从复制的作用 主从复制工作流程 阶段一:建立连接阶段 主从连接(slave连接master) 第一种方式 第二种方式 第三种方式 授权访问 阶段二: ...

  8. 将机器人技术应用于医疗机器人的机器人协作:实现工作流程的协同性

    作者:禅与计算机程序设计艺术 随着自动化技术的快速发展,目前已经出现了多个可穿戴设备.机器人等新型产品,在医疗行业中也得到广泛应用.其中,机器人协作可以提高效率和质量,减少错误率,降低人力成本.如何利 ...

  9. Struts2的工作流程

    Struts2与WebWork的工作方式类似,它同样使用了拦截器作为其处理用户请求的控制器.在Struts2中有一个核心控制器FilterDispatcher,这个核心控制器相当于Struts1的Ac ...

最新文章

  1. jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理
  2. 广西师范大学c语言期末试题,广西师范大学 据库原理(A卷).doc
  3. Java编程时部分快捷键
  4. 武汉游记,三件新鲜奇葩事
  5. 2016美国计算机研究生,2016美国留学:美国大学研究生计算机工程专业排名
  6. 1053 Path of Equal Weigh(甲级)
  7. Linux并发程序课程设计报告,网络操作系统课程设计--进程机制与并发程序设计-linux下生产者与消费者的问题实现.doc...
  8. 【BZOJ】1052: [HAOI2007]覆盖问题(贪心)
  9. utuntu 12.04 安装 配置 JAVA JDK
  10. ASP.NET Using 的几种用法
  11. 记录|深度学习100例-卷积神经网络(CNN)minist数字分类 | 第1天
  12. 使用SEGGER Jlink下载hex文件
  13. 自控力:和压力做朋友(斯坦福大学实用的心理学课程) 读后感
  14. 【 Android 10 生物识别 】系列 -- Fingerprint_指纹录入流程
  15. C语言 低通滤波器\带通滤波器\高通滤波器
  16. 360 路由器设置 虚拟服务器,360安全路由器的设置方法
  17. Excel 和 python 使用梯度下降法分别求【极小值点】【线性回归问题】
  18. 结构化大数据分析平台设计
  19. 容齐的身世_白发王妃漫夭和容齐是什么关系 女主容乐跟谁睡过遭扒可怜容齐...
  20. 【MySQL】MySQL的自然连接和USING连接详细总结

热门文章

  1. 如何用Jupyter Notebook制作新冠病毒疫情追踪器?
  2. 如果三十年前有这些AI技术,可可西里的悲剧不会发生
  3. 定义AI,麦卡锡、图灵、乔丹...我们听谁的?
  4. Python需求增速达174%,AI人才缺口仍超百万!这份来自2017年的实际招聘数据如是说
  5. 100 行代码透彻解析 RPC 原理
  6. 深入理解分布式缓存设计
  7. 支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型
  8. MyBatis 的工作原理,你了解过吗?
  9. JAVA 线上故障排查套路,从 CPU、磁盘、内存、网络到GC 一条龙!
  10. 面试:你知道 Java 中的回调机制吗?