Scrapy 框架架构


目录

  • Scrapy 框架架构
  • 前言
  • 一、核心组成
  • 二、数据流
  • 三、项目结构
  • 总结

前言

  • Scrapy (/ˈskreɪpaɪ/) 是一个用于抓取网站和提取结构化数据的应用程序框架,可用于如数据挖掘、信息处理,网络爬虫。
  • scrapy基于异步框架实现的(Twisted)

这一节我们学习一下这个框架的基本架构,了解一下各组件是如何交互的。


一、核心组成

  • 引擎(Engine):引擎负责控制系统所有组件之间的数据流。自动运行,无需关注。
  • 调度器(Scheduler):接收来自引擎的请求,放在队列中,需要时在按一定次序交给引擎。
  • 下载器(Downloader):获取请求信息后,从网络获取数据并返回响应。
  • 爬虫(Spiders):我们操作最多的部分,用于解析下载器返回的响应。
  • 管道(Item Pipeline):处理爬虫解析好的数据,例如数据持久化(存入数据库),查重等。
  • 下载中间件(Downloader middlewares):处理引擎发来的请求和下载器发出的响应。
  • 爬虫中间件(Spider middlewares):处理进入spider的响应和出spider的数据或新请求。

二、数据流

对照上面的图片:

  1. 引擎从Spider获取初始请求 。
  2. 引擎请求调度器,并准备下一次请求的抓取
  3. 调度器将请求交给引擎
  4. 引擎发出请求经过下载中间件交给下载器
  5. 下载完成后,下载器返回响应再次经过下载中间件交给引擎
  6. 引擎接收来自下载器的请求,经过爬虫中间件发送给 爬虫进行处理
  7. 爬虫处理响应返回数据item,或者新请求交给引擎,中间还会经过爬虫中间件。
  8. 引擎将item发送给管道,新请求发送给调度器等待调度
  9. 从第三步进行循环,直到调度其中没有请求

并不是所有部分我们都需要关注,这些组成中引擎,下载器和调度器,是不需要我们编写的。我们的重点在其他部分。

三、项目结构

接下来我们了解一下创建项目后的结构,在需要存储代码的目录下运行终端cmd:scrapy startproject 爬虫名称
完成后我们会发现已经出现了项目目录,内容如下:

爬虫名称/scrapy.cfg            # 项目配置文件,包含配置路径,部署信息爬虫名称/             # 项目的Python模块,您将从这里导入代码__init__.pyitems.py          # 用来定义Item数据结构middlewares.py    # 用来实现中间件pipelines.py      # 用于编写管道文件,也就是处理数据settings.py       # 项目的全局配置信息spiders/          # 用来存放日后编写的爬虫文件__init__.py

总结

本节介绍了Scrapy框架的基础知识,各部分具体如何实现后面会讲,但是这节要理解掌握工作流程,这有助于后面工作的进行。

Scrapy 框架架构相关推荐

  1. scrapy框架架构

    介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可用于 ...

  2. 5.1-python爬虫之Scrapy框架及入门

    系列文章目录 python爬虫目录 文章目录 系列文章目录 前言 一.Scrapy框架架构 1.Scrapy框架介绍 2.Scrapy架构图 3.Scrapy框架模块功能 二.安装和文档 三.快速入门 ...

  3. 【Python爬虫系列教程 28-100】小姐姐带你入门爬虫框架Scrapy、 使用Scrapy框架爬取糗事百科段子

    文章目录 Scrapy快速入门 安装和文档: 快速入门: 创建项目: 目录结构介绍: Scrapy框架架构 Scrapy框架介绍: Scrapy框架模块功能: Scrapy Shell 打开Scrap ...

  4. Scrapy框架的学习(一)

    1. Scrapy概述 1. 为什么要学习scrapy框架 爬虫必备的技术,面试会问相关的知识. 让我们的爬虫更快更强大.(支持异步爬虫) 2. 什么是Scrapy? 异步爬虫框架:Scrapy是一个 ...

  5. python scrapy框架 简书_python爬虫框架——Scrapy架构原理介绍

    说起写爬虫,大多数第一时间想到的就是python了.python语法简洁明了,加上及其丰富好用的库,用它来写爬虫有天然的优势. 之前学python的时候也用requests+lxml写过几个爬虫玩,但 ...

  6. Scrapy 框架介绍 [Scrapy 框架概述][Scrapy 框架的特点][Scrapy 框架的架构概述]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力- 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 文章目录 1 S ...

  7. 玩转 Scrapy 框架 (二):Scrapy 架构、Request和Response介绍

    目录 一.Scrapy 架构及目录源码分析 二.Request 和 Response 介绍 2.1 Request 2.2 Response 三.实例演示 3.1 POST 请求 3.2 GET 请求 ...

  8. Python爬虫从入门到放弃(十二)之 Scrapy框架的架构和原理

    原文地址https://www.cnblogs.com/zhaof/p/7173397.html 这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的 ...

  9. scrapy框架_Scrapy框架学习---Scrapy介绍(一)

    Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页 ...

最新文章

  1. SH 脚本注意事项之 IF 判断
  2. sed命令详解--转
  3. css-modules 简介
  4. HDU - 2457 DNA repair(AC自动机+dp)
  5. linux切换root报错,Linux用户切换到root后运行图形程序报错(*GLib-GIO-CRITICAL **)
  6. Spring MVC 流程图
  7. cube云原生机器学习平台-架构(五)
  8. 资源工具分享(第1期):后端架构师技术图谱
  9. NDSS 2021 论文泛读
  10. [Node.js] rsaaes 加密解密
  11. Apple Pay编程指南(6) -沙盒测试
  12. 互联网中常见优化手段
  13. 2018.8.10Yukimai模拟Day1
  14. 如何通过js关闭微信浏览器页面
  15. canvas教程6-绘制圆弧
  16. c语言 char = china,[求助]char a []=CHINA
  17. VS2015 更换序列号
  18. 防复制防破解小区门禁梯控升级非联网CPU卡脱机写卡门禁梯控一卡通系统92HID623CPU V5.00操作说明之设备与楼栋单元设置
  19. 统计学中sp_统计学名词解释
  20. 管理潜能测试软件,快速判断管理者潜力   人才测评工具来帮忙

热门文章

  1. 杰里之AC696N 低电 VBAT 检测不准说明【篇】
  2. html怎么遍历数组,JavaScript如何遍历数组?遍历数组方法介绍
  3. 小哈机器人新年照片_年关将至,这款智能机器人是走亲访友最好的新春礼物
  4. ros 雷达 slam 导航 文件分析
  5. 国内外公有云容器服务备份恢复中文指南
  6. AUTOCAD(三)基础知识
  7. C# url转义字符
  8. 小米6的发布与配置信息
  9. 活动运营自动化平台实践
  10. 英雄联盟手游显示服务器维护中什么意思,lol游戏维护中是什么意思 维护更新到几点结束...