当前位置:网站首页>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也会重新下载。
边栏推荐
- linux 下MySQL本地安装mysql - u root - p 无法登入
- Ecplise执行C语言报错:cannot open output file xxx.exe: Permission denied
- 开源盛宴ApacheCon Asia 2022即将开幕,精彩不容错过!
- What is NDT equipment?
- 微信小程序云开发 | 城市信息管理
- 【AGC】构建服务1-云函数示例
- 针不戳,数据库性能优化八大方案。
- 基础架构之Redis
- ROS 节点初始化步骤、topic/service创建及使用
- The sixteenth issue of eight-part article Balabala said (MQ)
猜你喜欢

Pytorch foundation -- tensorboard use (1)

基于亚马逊云科技无服务器服务快速搭建电商平台——性能篇

沉浸式体验科大讯飞2022消博会“官方指定产品”

Pagoda builds PHP adaptive lazy website navigation source code measurement

Pytorch基础--tensorboard使用(一)

Hello, my new name is "Bronze Lock/Tongsuo"

MySQL数据类型

CCNA-子网划分(VLSM)

SQL行列转换

ByteArrayInputStream class source code analysis
随机推荐
ROS 节点初始化步骤、topic/service创建及使用
One year after graduation, I was engaged in software testing and won 11.5k. I didn't lose face to the post-98 generation...
OSPF详解(4)
Anaconda Navigator卡在loading applications
荐书 | 推荐好评如潮的3本数据库书籍
Arranger software FL Studio Chinese version installation tutorial and switching language tutorial
Codeblocks + Widgets 创建窗口代码分析
博纳影通过IPO注册:阿里腾讯是股东 受疫情冲击明显
网络基础(三)01-网络的基础概念——URL地址组成之协议、主机地址、路径和参数&127.0.0.1本地回环地址& 查看网址IP地址并访问之ping空格+网址&netstat -anb查看本机占用端口
DevEco Studio3.0下载失败,提示An unknown error occurred
Two-point answer naked question (plus a little pigeonhole principle)
【HMS core】【Analytics Kit】【FAQ】如何解决华为分析付费分析中付款金额显示为0的问题?
LeetCode Exercise - Two Questions About Finding Sum of Array Elements
LayaBox---TypeScript---函数
【HMS core】【ML Kit】机器学习服务常见问题FAQ(二)
Vulkan与OpenGL对比——Vulkan的全新渲染架构
针不戳,数据库性能优化八大方案。
JVM诊断命令jcmd介绍
信息学奥赛一本通 1966:【14NOIP普及组】比例简化 | 洛谷 P2118 [NOIP2014 普及组] 比例简化
【HMS core】【FAQ】HMS Toolkit典型问题合集1