1.scrapy框架的概念:

文档地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
Scrapy 使用了Twisted['twɪstɪd]异步网络框架,可以加快我们的下载速度。
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取。

2.异步和非阻塞的区别

  1. 异步:调用在发出之后,这个调用就直接返回,不管有无结果;异步是过程。
  2. 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。

3.scrapy的工作流程

3.1 爬虫流程

3.2 上面的流程可以改写为

3.3 scrapy的流程

其流程可以描述如下:

  1. 调度器把requests–>引擎–>下载中间件—>下载器
  2. 下载器发送请求,获取响应---->下载中间件---->引擎—>爬虫中间件—>爬虫
  3. 爬虫提取url地址,组装成request对象---->爬虫中间件—>引擎—>调度器
  4. 爬虫提取数据—>引擎—>管道
  5. 管道进行数据的处理和保存

注意:

  1. 图中绿色线条的表示数据的传递
  2. 注意图中中间件的位置,决定了其作用
  3. 注意其中引擎的位置,所有的模块之前相互独立,只和引擎进行交互

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

scrapy中每个模块的作用:

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

scrapy框架的概念和流程相关推荐

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

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

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

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

  3. python爬虫之scrapy框架

    在能够使用基础代码实现爬虫效果的基础上.使用scrapy框架会大大的提高我们的效率.那么scrapy框架实现爬虫的流程是什么呢?如下图: 1.手动完成 --在爬虫器内定义起始url,构造一下reque ...

  4. scrapy框架---带你飞向爬虫路(九)

    回顾(八)系统学习出门左转一到八 scrapy框架 五大组件+工作流程+常用命令 [1]五大组件1.1) 引擎(Engine)1.2) 爬虫程序(Spider)1.3) 调度器(Scheduler)1 ...

  5. python的scrapy框架----->可以使我们更加强大,为打破写许多代码而生

    目录 scrapy框架 pipeline-itrm-shell scrapy模拟登录 scrapy下载图片 下载中间件 scrapy框架 含义: 构图: 运行流程:1.scrapy框架拿到start_ ...

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

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

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

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

  8. 爬虫学习笔记(六)——Scrapy框架(一):安装、运行流程及简单使用

    文章目录 一.简介 二.安装(Windows) 三.运行流程 3.1.数据流 3.2.组件介绍 3.3.简单使用 3.3.1.项目命令 3.3.2.shell 交互式平台 四.小案例:爬取豆瓣电影 4 ...

  9. scrapy框架流程

    scrapy框架是基于python的爬虫框架,大致流程如下: scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量代码, 就能够快速的抓取到数据内容. Scrapy ...

最新文章

  1. python的面向对象编程学生成绩_python的类_面向对象编程
  2. SNMP协议介绍和操作截图
  3. c语言用户输入编程,C语言入门教程-Printf:读取用户输入
  4. Install marvel and head plugin for ealsticsearch
  5. DAVY的神龙帕夫——读者的心灵故事|十二橄榄枝的传说
  6. javascript+HTML+CSS面试题
  7. java7教程_Java 7基础教程:掌握Java 7的理想起点
  8. 施一公到底有多牛(据说他的研究成果逼得国外很多实验室都关了门)?
  9. C++ string()什么意思
  10. [原创]Android SDK下载(Linux下载SDK最新教程2020.11.26)
  11. RedHat7可视化图形界面安装
  12. 计算机控制技术课后题答案,计算机控制技术课后习题答案
  13. 在禁用uac_禁用仅管理员用户帐户控制(UAC)
  14. 使用Arctime生成各种格式的字幕文件
  15. 人脸识别概述及基于多显卡服务器实现百万底库人脸比对的简单实现方案
  16. 电脑由于按SHIFT键删除文件的资料的正确恢复方式
  17. VS Code 所选驱动器或UNC共享不存在或不可访问
  18. Market1501数据集下载
  19. 使用Github+Markdown搭键自己的笔记本
  20. 华为架构师谈如何理解运用模块与微服务,系统学Java从零开始

热门文章

  1. SpringCloud:Feign接口转换调用服务(Feign 基本使用、Feign 相关配置)
  2. Spring Security OAuth2源码解析(三)——单点登录。
  3. 单片机蓝牙烧录_蓝牙模块与单片机如何连接?
  4. cv岗工作做什么_中字头施工单位的党建岗是做什么的?
  5. 在 Java OOP 编程中的注意事项
  6. 请接受这份货真价“无”的PPT
  7. Windows下MySQL数据库名及表名无法大写的问题
  8. ×××:关于促进云计算创新发展 培育信息产业新业态的意见
  9. 微信营销这么做,你就成功了 转载
  10. 来和小伙伴一起学习响应式网页设计吧