当前位置:网站首页>Scrapy框架介绍
Scrapy框架介绍
2022-07-30 18:20:00 【冷巷(*_*)】
目录
1.介绍
1)scrapy是python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。scrapy=scrach+python
2)scrapy用途广泛,可以用于数据挖掘、监测和自动化测试、信息处理和历史档案等大量应用范围内抽取结构化数据的应用程序框架,广泛用于企业
3)scrapy使用twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。scrapy是由twisted写的一个受欢迎的python事件驱动网络框架,他使用的是非堵塞的异步处理
2.为什么要用scrapy
1.更容易构建和大规模的抓取项目
2.内置的机制被称为选择器,用于从网站(网页)上提取数据
3.异步处理请求,速度非常快
4.可以使用自动调节机制自动调整爬行速度
5.确保开发人员可访问性
3.scrapy的特点
1.是一个开源、免费使用的网络爬虫框架
2.scrapy生成格式导出如: JSON、CSV、XML
3.内置之处从源代码,使用xpath或者css选择器来提取数据
4.scrapy基于爬虫,允许以自动方式从网页中提取数据
4.优点
1.很容易扩展,速度快,功能强大
2.这是一个跨平台应用程序框架
3.scrapy请求调度和异步处理
4.scrapy附带了一个名为scrapyd的内置服务,允许使用JSON web服务上的项目和控制蜘蛛
5.能够刮削任何网站,即使该网站不具有元素数据访问api
5.流程图

手写:
scrapy engine(引擎):否则spider、itempipeline、Downloader、scheduler中间的通讯,信号、数据传递等。
scheduler(调度器):负责接受 引擎 发送过来的request请求,并按照一定的方式进行整理排序,入队,当 引擎 需要时,交还给 引擎
Downloader(下载器):负责下载 引擎 发送的所有request请求,并将其获取到的response交还给 引擎 ,由 引擎 交给 spider 来处理
spider(爬虫):负责处理所有response,从中分析提取数据,获取item字段需要的数据,并将需要跟进的url提交给 引擎 ,再次进入 调度器
item pipeline(管道):负责处理 spider 中获取到的item,并进行后期处理(详细分析、过滤、存储等)的地方
Downloader middlewares(下载中间件):可以当做是一个可以自定义扩展下载功能的组件
spider middlewares(spider中间件):可以理解为是一个可以自定义扩展和操作 引擎 和 spider 中间 通信 的功能组件(比如进入 spider 的response和从 spider 出去的request)
最简单的单个网页爬取流程是: spiders ->scheduler -> downloader -> spiders -> item pipeline
注意!只用当 调度器 中不存在如何request了,整个程序才会停止,也就是说,对于下载失败的url,scrapy也会重新下载。
边栏推荐
- 【Qt Designer工具的使用】
- LayaBox---TypeScript---基础数据类型
- leetcode-547:省份数量
- JVM 上数据处理语言的竞争:Kotlin, Scala 和 SPL
- 使用postman调接口报Content type ‘text/plain;charset=UTF-8‘ not supported
- 你好,我的新名字叫“铜锁/Tongsuo”
- cocos creater 热更重启导致崩溃
- 【HarmonyOS】【FAQ】鸿蒙问题合集3
- MySQL data types
- Ecplise执行C语言报错:cannot open output file xxx.exe: Permission denied
猜你喜欢

网络基础(三)01-网络的基础概念——URL地址组成之协议、主机地址、路径和参数&127.0.0.1本地回环地址& 查看网址IP地址并访问之ping空格+网址&netstat -anb查看本机占用端口

Web结题报告

Hangzhou electric school game 2 1001 2022 Static Query on Tree (Tree + hash table difference chain subdivision

Graphic LeetCode -- 11. Containers of most water (difficulty: medium)

强啊,点赞业务缓存设计优化探索之路。

ByteArrayInputStream class source code analysis

ByteArrayInputStream 类源码分析

AI基础:图解Transformer

CCNA-ACL(访问控制列表)标准ACL 扩展ACL 命名ACL

猎豹移动终于递交年报:年营收7.85亿 腾讯持股16.6%
随机推荐
你好好想想,你真的需要配置中心吗?
荐书 | 推荐好评如潮的3本数据库书籍
ESP8266-Arduino编程实例-HC-SR04超声波传感器驱动
Application of time series database in the field of ship risk management
"Ruffian Heng Embedded Bimonthly" Issue 59
微信小程序云开发 | 城市信息管理
沃尔沃中国的年中总结,在“安全感”中寻找未来
强啊,点赞业务缓存设计优化探索之路。
Kettle--MySQL生产数据库千万、亿级数据量迁移方案及性能优化
国轩高科瑞交所上市:募资近7亿美元 为瑞士今年最大融资项目
Hangzhou electric school game 2 1001 2022 Static Query on Tree (Tree + hash table difference chain subdivision
Informatics Olympiad All-in-One 1966: [14NOIP Popularization Group] Scale Simplification | Luogu P2118 [NOIP2014 Popularization Group] Scale Simplification
开源盛宴ApacheCon Asia 2022即将开幕,精彩不容错过!
CCNA-子网划分(VLSM)
积性函数
载誉而归,重磅发布!润和软件亮相2022开放原子全球开源峰会
网络基础(三)01-网络的基础概念——URL地址组成之协议、主机地址、路径和参数&127.0.0.1本地回环地址& 查看网址IP地址并访问之ping空格+网址&netstat -anb查看本机占用端口
What kind of framework is friendly to developers?
arcpy获取要素类(属性表)包含的数目
第十六期八股文巴拉巴拉说(MQ篇)