爬虫中scrapy模块的概念作用和工作流程

news2024/9/28 1:20:16

scrapy的概念和流程

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

1. scrapy的概念

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

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

Scrapy文档地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html

2. scrapy框架的作用

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

3. scrapy的工作流程

3.1 回顾之前的爬虫流程

3.2 上面的流程可以改写为

3.3 scrapy的流程

其流程可以描述如下:
  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等

小结

  1. scrapy的概念:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架
  2. scrapy框架的运行流程以及数据传递过程:
    1. 爬虫中起始的url构造成request对象–>爬虫中间件–>引擎–>调度器
    2. 调度器把request–>引擎–>下载中间件—>下载器
    3. 下载器发送请求,获取response响应---->下载中间件---->引擎—>爬虫中间件—>爬虫
    4. 爬虫提取url地址,组装成request对象---->爬虫中间件—>引擎—>调度器,重复步骤2
    5. 爬虫提取数据—>引擎—>管道处理和保存数据
  3. scrapy框架的作用:通过少量代码实现快速抓取
  4. 掌握scrapy中每个模块的作用:
    引擎(engine):负责数据和信号在不腰痛模块间的传递
    调度器(scheduler):实现一个队列,存放引擎发过来的request请求对象
    下载器(downloader):发送引擎发过来的request请求,获取响应,并将响应交给引擎
    爬虫(spider):处理引擎发过来的response,提取数据,提取url,并交给引擎
    管道(pipeline):处理引擎传递过来的数据,比如存储
    下载中间件(downloader middleware):可以自定义的下载扩展,比如设置代理ip
    爬虫中间件(spider middleware):可以自定义request请求和进行response过滤,与下载中间件作用重复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1323643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Linux安装的Docker中开启IPv6

先在Linux中安装docker,然后在docker中开启IPv6。 安装docker 第一步,卸载旧版本docker。 若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。 命令:yum -y remove docker docker-client do…

15 使用v-model绑定单选框

概述 使用v-model绑定单选框也比较常见,比如性别,要么是男,要么是女。比如单选题,给出多个选择,但是只能选择其中的一个。 在本节课中,我们演示一下这两种常见的用法。 基本用法 我们创建src/component…

FPGA 实现 LeNet-5 卷积神经网络 数字识别,提供工程源码和技术支持

目录 1、前言LeNet-5简洁基于Zynq7020 的设计说明PL 端 FPGA 逻辑设计PS 端 SDK 软件设计免责声明 2、相关方案推荐卷积神经网络解决方案FPGA图像处理方案 3、详细设计方案PL端:ov7725摄像头及图像采集PL端:图像预处理PL端:Xilinx推荐的图像缓…

你好!二叉排序树【JAVA】

目录 1.简单介绍 2.创建节点 3.创建二叉排序树 4.二叉树的删除 5.创建节点 6.创建二叉树 1.简单介绍 二叉排序树: BST: (Binary Sort(Search) Tree),对于二叉排序树的任何一个非叶子节点:要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。 特别说明:如…

HTTP协议设备接入

本文主要介绍使用Postman模拟HTTP协议,将设备连接到平台内置HTTP服务。 操作步骤 创建产品 物联网->设备管理->选择产品,填写产品基础信息。 参数 对应设备侧参数 ID 产品唯一标识,若不填写,系统将自动生成唯一ID 设备…

基于ssm校园二手交易平台论文

校园二手交易平台 摘要 随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了校园二手交易平台的开发全过程。通过分析企业对于校园二手交易平台的需求,创建了一个计算机管理校园二手交易平台的方案。文章介绍…

高效实现Java编程:将Excel XLSX转换为PDF的技巧

本文由葡萄城技术团队发布。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 Java是一种广泛使用的编程语言,它在企业级应用开发中发挥着重要作用。而在实际的开发过程中&#x…

运行hive的beelin2时候going to print operations logs printed operations logs

运行hive的beelin2时候going to print operations logs printed operations logs 检查HiveServer2的配置文件hive-site.xml&#xff0c;确保以下属性被正确设置&#xff1a; <property><name>hive.async.log.enabled</name><value>false</value>…

【服务器】Linux 安装 Jenkins+cpolar实现远程访问

Jenkins是一个开源的持续集成(CI)和持续交付(CD)工具&#xff0c;用于自动化构建、测试和部署软件项目。它提供了一个易于使用的平台&#xff0c;用于构建、测试和交付软件的过程。 下面介绍在Linux CentOS 7中如何实现安装Jenkins和结合cpolar 内网穿透工具实现远程访问Jenkin…

贝蒂详解<string.h>哦~(用法与实现)

目录 引言&#xff1a; &#xff08;一&#xff09;字符函数和字符串函数 1.简介 2.strlen()函数 2.1用法 2.2实例 2.3 实现strlen() &#xff08;1&#xff09;计数法 &#xff08;2&#xff09;递归法 &#xff08;3&#xff09; 指针-指针 2.4sizeof和strlen()的区别 3.s…

Java:语法速通

参考 菜鸟教程 java 继承 class 父类 { }class 子类 extends 父类 { }继承的特性&#xff1a; 子类拥有父类非private的属性和方法子类可以对父类进行扩展子类可以重写父类的方法使用extends只能单继承&#xff0c;使用implements可以变相的多继承&#xff0c;即一个类继承…

P71自监督式学习

命名都以芝麻街的角色命名 x 分为x’ 和 x’’ &#xff0c;自己跟自己学bert 架构跟 transformer Encoder 一样&#xff0c;输入一排向量&#xff0c;输出一排向量&#xff0c;一般用在自然语言处理上 模型大小&#xff1a; x 分为 x’ x’’ 自学习 bert 可以做输入一排向…

未来之笔:AI绘画如何重新定义人物设计艺术

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;艺术创作领域正迎来一场革命性的变革。AI绘画正在重新定义人物设计艺术&#xff0c;为艺术家和设计师带来前所未有的创作可能性。人物设计作为艺术创作中的重要组成部分&#xff0c;正在受到AI技术革新的深刻…

前端-如何自己做一个可视化的人员选择泛用组件

一、展示组件效果 二、组件的功能 1.用户可以在搜索框里输入字符&#xff0c;下方列表实时变动&#xff08;筛选出包含搜索字符的可选项&#xff09;&#xff0c;如果没有字符&#xff0c;就展示所有的选项 2.用户点击可选项&#xff0c;右侧出现标签 3.用户点击标签的XX&am…

【Git】Git基本操作

文章目录 Git 是什么Git 的优点Git 安装Linux UbuntuLinux CentOsWindows Git 基本操作1. 创建 Git 本地仓库2. 配置 Git3. Git工作区、暂存区和版本库4. 添加文件5. 查看 .git 文件6. 修改文件7. 版本回退 Git 是什么 Git是一个免费的、开源的分布式版本控制系统&#xff0c;…

国产Apple Find My认证芯片哪里找,伦茨科技ST17H6x芯片可以帮到您

深圳市伦茨科技有限公司&#xff08;以下简称“伦茨科技”&#xff09;发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家&#xff0c;该平台提供可通过Apple Find My认证的Apple查找&#xff08;Find My&#xff09;功能集成解决方案。…

Ubuntu 常用命令之 top 命令用法介绍

top命令是Linux下常用的性能分析工具&#xff0c;可以实时动态地查看系统中各个进程的资源占用状况&#xff0c;类似于Windows的任务管理器。它可以显示系统总的和分区的CPU使用率、内存使用率、交换区使用率、系统负载、进程数、最耗CPU的进程等信息。 top命令的参数如下 -b…

数据之门:使用IPIDEA开启网络自由之旅~

本文目录 前言一、网络代理IP简介二、IPIDEA 优势2.1 多种类型IP代理2.2 海量纯净代理池2.3 稳定高效数据收集架构2.4 个人IP管理中心 三、IP代理实操小Tips3.1 查看本地网络IP3.2 使用浏览器IP代理3.3 使用IPIDEA进行爬虫实操 四、总结 前言 各位友友&#xff0c;大家好&…

Win10电脑字体太浅了看不清的解决方法

在Win10电脑操作过程中&#xff0c;用户发现电脑字体太浅了&#xff0c;自己都看不清字体了&#xff0c;这样比较影响自己的操作效率。下面小编给大家带来Win10字体颜色太淡的解决方法&#xff0c;解决后用户可以看到Win10电脑字体颜色就不会太淡&#xff0c;视觉体验感也更好。…

22款奔驰E260L升级原厂360全景影像 效果分享

很多车友们会问个问题 就是升级这些功能会不会有异响&#xff1f;我们星骏汇回答这个问题 有异响是因为师傅经验不够安装的不够仔细 &#xff0c;像卡扣卡不到位 原厂预留位置 安装的不准确 可能就会造成异响&#xff0c;也有很多车友会问 为什么要升级呢&#xff1f;准确的来说…