当前位置:网站首页>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也会重新下载。
边栏推荐
猜你喜欢
ESP8266-Arduino编程实例-DS18B20温度传感器驱动
A senior with 13 years of experience in software testing, summed up 5 test employment suggestions....
leetcode-1319:连通网络的操作次数
Graphic LeetCode -- 11. Containers of most water (difficulty: medium)
载誉而归,重磅发布!润和软件亮相2022开放原子全球开源峰会
微博广告分布式配置中心的构建与实践(有彩蛋)
Pytorch基础--tensorboard使用(一)
DevEco Studio3.0下载失败,提示An unknown error occurred
宽带射频放大器OA4SMM4(1)
【HMS core】【Analytics Kit】【FAQ】如何解决华为分析付费分析中付款金额显示为0的问题?
随机推荐
Basic knowledge points in js - BOM
Pytorch foundation -- tensorboard use (1)
LayaBox---TypeScript---变量声明
【开发者必看】【push kit】推送服务典型问题合集3
The sixteenth issue of eight-part article Balabala said (MQ)
MySQL中的存储过程(详细篇)
Leetcode数据库系列题解合集(持续更新)
基于b/s架构搭建一个支持多路摄像头的实时处理系统 ---- 使用yolo v5 系列模型
JVM 上数据处理语言的竞争:Kotlin, Scala 和 SPL
Presto 中 lookUp Join的实现
线性筛求积性函数
DTSE Tech Talk丨第2期:1小时深度解读SaaS应用系统设计
AI基础:图解Transformer
JVM诊断命令jcmd介绍
5分钟搞懂MySQL - 行转列
《自然语言处理实战入门》---- 文本样本扩展小技巧:使用回译技术进行样本增强
【AGC】增长服务2-应用内消息示例
软件测试13年从业经验的前辈,总结的5条测试就业建议....
【HMS Core】【FAQ】运动健康、音频编辑、华为帐号服务 典型问题合集7
基础架构之Redis