Python爬虫:scrapy 的运行流程和各模块的作用
scrapy的运行流程
- 爬虫 -> 起始URL封装Request -> 爬虫中间件 -> 引擎 -> 调度器(Scheduler): 缓存请求, 请求去重
- 调度器 -> 请求 -> 引擎 -> 经过下载器中间件 -> 下载器(发送请求, 获取响应数据, 封装Response)
- 下载器 - Response(响应) -> 经过下载器中间件 -> 引擎
- 引擎 - response -> 经过爬虫中间件 -> 爬虫 (解析数据, 提取URL封装请求, 提取数据)
- 爬虫:
- 提取URL封装请求 -> 爬虫中间件 -> 引擎 -> 调度器
- 提取数据 -> 引擎 -> 管道(Pipeline: 处理数据, 比如保存)
各个模块及作用:
爬虫模块:
- 构建起始请求 2. 响应数据解析(1. 提取URL封装请求, 2. 提取数据) (需要自己写)
调度器模块:
- 缓存请求 2. 请求去重 (已经实现了)
下载器模块:
发送请求, 获取响应数据,封装为Response(已经实现了)
管道模块:
处理数据, 比如保存(需要自己写)
引擎模块:
总指挥: 负责模块之间调度, 以及数据传递(已经实现了)
下载器中间件:
在引擎和下载器之间, 可以对请求和响应数据进行处理, 比如: 实现随机代理IP, 随机User-Agent
爬虫中间件:
爬虫和引擎之间, 可以对请求和响应数据进行处理, 比如过滤. (很少)
转载于:https://www.cnblogs.com/mzfly/p/9953068.html
Python爬虫:scrapy 的运行流程和各模块的作用相关推荐
- Python爬虫——Scrapy 的基本使用
文章目录 Python爬虫--Scrapy 的基本使用 1.创建 Scrapy 爬虫项目 2.Scrapy-创建爬虫文件 3.Scrapy-运行爬虫文件 Python爬虫--Scrapy 的基本使用 ...
- python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取
python爬虫–Scrapy框架–Scrapy+selenium实现动态爬取 前言 本文基于数据分析竞赛爬虫阶段,对使用scrapy + selenium进行政策文本爬虫进行记录.用于个人爬虫学习记 ...
- Python爬虫—Scrapy框架—Win10下载安装
Python爬虫-Scrapy框架-Win10下载安装 1. 下载wheel 2.下载twisted 3. 下载pywin32 4. 下载安装Scrapy 5. 创建一个scrapy项目 6. fir ...
- Python爬虫-Scrapy框架(四)- 内置爬虫文件 - 4.2 初探Crawl Spider
Python爬虫-Scrapy框架(四)- 内置爬虫文件 - 4.2 初探Crawl Spider 写在前面 初探Crawl Spider 创建Crawl Spider项目 对比Basic与Crawl ...
- Python爬虫 - scrapy - 爬取妹子图 Lv1
0. 前言 这是一个利用python scrapy框架爬取网站图片的实例,本人也是在学习当中,在这做个记录,也希望能帮到需要的人.爬取妹子图的实例打算分成三部分来写,尝试完善实用性. 系统环境 Sys ...
- Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...
- Python爬虫——Scrapy 简介和安装
文章目录 Python爬虫--Scrapy 简介和安装 1.Scrapy 简介 2.Scrapy 下载安装 Python爬虫--Scrapy 简介和安装 1.Scrapy 简介 Scrapy 简介 S ...
- scrapy爬虫框架及运行流程
文章目录 1 scrapy 简介 1.1 什么是爬虫? 1.2 浏览网页的过程中发生了什么? 1.3 scrapy爬虫框架 1.4 scrapy爬虫框架优势 2 scrapy 构架图 3 Scrapy ...
- 从入门到入土:python爬虫|scrapy初体验|安装教程|爬取豆瓣电影短评相关信息(昵称,内容,时间和评分)
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
最新文章
- EXCEL中SUMIF函数介绍
- mongodb数据文件结构——record是内嵌BSON的双向链表,多个record或索引组成extent...
- Oracle数据库LOGGINGNOLOGGING模式概述
- dataframe 列名重新排序
- unlegal android,百度地图定位 Cordova 插件 cordova-plugin-baidumaplocation
- 加快读博失败的10种方法
- python模拟抛硬币_python实现简单随机模拟——抛呀抛硬币
- 程序员的算法课(12)-使用通配符*,?等来查找字符串
- diy配置程序php,poscmsDiy字段之文件类型设计指南
- 如何在SQL Server中检查日期是否为假期
- python吧_如何自学Python?【python吧】
- Teechart图表教程:Teechart的组成
- 如何选择物业管理软件,五大误区需要避免
- 国内外最顶级的十大敏捷项目管理软件【2022】
- python解析mht文件_实现MHT文件格式的解析和内容抽取
- win7计算机打开显卡设置在哪,[win7显卡设置在哪里]WIN7显卡优化设置在哪
- 笔记—R语言做相关气泡图
- 将U盘的图标改成自己喜欢的图案
- 【预训练语言模型】WKLM: Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model
- 【canvas使用】
热门文章
- jquery获取服务器控件的值
- Linux中.a,.la,.o,.so文件的意义和编程实现
- 三星超过台积电 成为全球市值最高半导体公司
- 多线程编程之死锁已经死锁产生的原因
- Python科学计算扩展库NumPy之np.array()与np.asarray()区别
- 八个最好的开源机器学习框架和库
- 基于谱减法的声音去噪
- 面试必备之:MFC socket编程(浅出+深度:服务端和客户端端口问题)
- php快速排序法远离,php快速排序原理与实现方法分析
- 向日葵win10远程linux主机,大神为你细说win10系统使用向日葵远程桌面软件远程的操作办法...