【学习心得】网络中常见数据格式(爬虫入门知识)

在爬虫爬取数据的之前,必须先系统的了解一下我们待爬取的数据有哪些格式,这样做的好处在与能针对不同的数据类型采取不同分方法手段。

一、XML

XML(Extensible Markup Language)是一种可扩展的标记语言,它定义了一套标记,用于组织和传输信息,比如文本、图像、数据、音频和视频等。与HTML不同,XML并不是用于显示信息的,而是用于存储和传输信息的。XML标记没有预定义的含义,必须由用户自定义。XML标记可以用于组织和传输各种类型的数据,例如文本、图像、数据、音频和视频等。XML还支持自定义标记,这些标记可以用于描述特定类型的数据。许多应用程序和系统都使用XML作为数据存储和传输的标准格式,因为它具有灵活性和可扩展性。

二、JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它比XML更小、更快,而且更容易被人阅读。JSON格式定义了一种可以在Web浏览器和服务器之间传输数据的简单方法。它由两个主要部分组成:键值对和数组。键值对是一对括号内的键和值,其中键通常是字符串,值可以是字符串、数字、布尔值、数组或另一个键值对。数组是一组值的集合,它们以逗号分隔,每个值都有一个唯一的键。JSON数据可以用于在Web应用程序和服务器之间传输数据,也可以用于在客户端和服务器之间传输数据。许多Web框架都支持JSON数据格式,因此它已经成为了一种流行的数据交换格式。

具有以下几个关键特点:

  • JSON 是轻量级的文本数据交换格式。相比XML,JSON 的体积更小、更快速,这使得 JSON 非常适合在网络上快速传递数据。
  • JSON 独立于语言和平台。JSON 使用 Javascript语法来描述数据对象,但 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
  • JSON 易于人阅读和编写。相比XML,JSON 的语法更加简洁,阅读和编写都更容易。
  • JSON 同时被人和机器都能理解。JSON 具有自我描述性,同时也具备层级关系,使其成为理想的数据交换语言。
  • JSON 使用名称/值对来描述数据。一个 JSON 对象就是一个键值对的集合,它使用 { } 括起来。每个名称后面都有一个 :,名称和值之间使用 : 分隔。
  • JSON 值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、对象(在花括号中)、null。

三、Protobuf

Protobuf (Protocol Buffers)是一种轻量级、高效、可扩展的数据序列化格式 ,由谷歌开发并开源。它可以在不同的平台、语言之间传递和解析数据,支持类型定义和版本控制,具有数据压缩和序列化速度快的优点。Protobuf 可以用于数据存储、通信协议、数据共享等场景,广泛应用于谷歌、微软、阿里巴巴等公司的产品中。

它的主要特点包括:

  • 轻便高效 : 相比 XML 和 JSON,Protobuf 的编码体积更小,序列化/反序列化速度更快。
  • 语言中立 : Protobuf 的数据描述语言可以在不同的编程语言中使用,生成对应的代码,支持多语言的交互。
  • 可扩展 : 支持可选和必选字段,可以轻松做版本兼容。
  • 代码生成 : 根据 .proto 文件可以自动生成序列化、反序列化代码,使用简单。
  • 类型安全 : Protobuf 中的数据类型更严格,可以进行类型检查。
  • 支持数据认证 : 可以设置数据范围,要求等,对数据进行验证。
  • 平台中立 : 支持各种平台,从移动端到服务器端都可以使用。

Protobuf 的数据首先需要使用 .proto 文件进行描述,然后通过 protoc 工具生成对应语言的代码,然后在程序中使用这些代码对数据进行序列化和反序列化,从而实现数据的存储和交换。

四、Transport Stream

(1)HLS

HLS(HTTP Live Streaming)是一种流媒体协议 ,用于在互联网上提供视频和音频内容的实时传输 。它是由苹果公司在2009年推出的,用于替代之前的MPEG:DASH协议。

HLS协议使用M3U8格式的文件来指定媒体文件的列表,并通过HTTP协议将这些文件分块传输给用户。M3U8文件包含了一个或多个媒体文件的路径,以及这些文件的分块大小和顺序。

当用户请求一个HLS流时,服务器会返回一个M3U8文件,该文件指定了所有媒体文件的路径和分块大小。然后,服务器会根据用户的请求动态地发送这些分块,直到用户完成播放。

HLS协议的优点在于它可以适应不同带宽的网络,并且可以在不同的设备上流畅地播放视频。它也比较容易实现,并且不需要额外的插件或软件即可在浏览器中播放。

(2)M3U8

m3u8是一种播放列表文件格式 ,用于指定HTTP Live Streaming(HLS)流媒体的媒体文件列表和元数据。m3u8的全称是MPEG-2 Transport Stream UTF-8 Encoding Format Playlist。它使用UTF-8编码,文件扩展名为.m3u8。m3u8文件包含了一系列抓取和播放流媒体文件的指令,每一行指向一个流媒体文件片段。通过把这些文件片段按照m3u8列表中的顺序拼接起来,可以还原整个流媒体文件。

m3u8主要有以下特征:

  • 存储流媒体索引和元数据,指导如何抓取和播放流媒体片段
  • 使用UTF-8编码,跨平台兼容
  • 文件片段通常是ts格式的视频流和aac格式的音频流
  • 支持AES-128加密,保证内容安全
  • 支持多码率级别,可以自动切换以适应不同网络

M3U8格式文件可以使用文本编辑器进行创建和编辑,并且可以通过HTTP协议直接传输给用户。

(3)ts

TS即传输流(Transport Stream)格式 是一种广泛使用的数字视频和音频流格式。

ts文件主要有以下几个特征:

  • 是一种二进制格式,用于传输视频、音频、数据等数字媒体流。
  • 通常用来封装MPEG-2编码的视频流和AAC/MP3编码的音频流。
  • 支持将视频、音频和数据打包传输。每个流分别包装,互不影响。
  • 在传输时可对媒体流进行加密。
  • 可以携带额外的元数据信息。
  • 应用场景主要是数字电视播放、IPTV、流媒体传输等。
  • HLS流媒体通常会将流切割为ts格式的文件片段。

ts是一种针对流媒体传输而设计的文件容器格式,支持把不同的数据流封装和同步传输,在数字媒体领域用途广泛。

相关推荐
古希腊掌握嵌入式的神1 小时前
[物联网iot]对比WIFI、MQTT、TCP、UDP通信协议
网络·物联网·网络协议·tcp/ip·udp
LCY1331 小时前
spring 中的DAO是什么
运维·git·jenkins
叫我王富贵i1 小时前
0基础入门scrapy 框架,获取豆瓣top250存入mysql
爬虫·python·scrapy
爱写代码的小朋友1 小时前
华三交换机配置常用命令
运维·服务器·网络
wangjun51591 小时前
jenkins 参数化发布到服务器 publish over ssh、label、Parameterized publishing
服务器·ssh·jenkins
愿你天黑有灯下雨有伞1 小时前
Docker 安装 Elasticsearch 教程
运维·elasticsearch·docker
遇见火星1 小时前
自动化发布工具CI/CD实践Jenkins常用工具和插件的使用
运维·ci/cd·自动化·jenkins·自动化发布
愚润求学1 小时前
【Linux】Linux权限
linux·服务器·语法
半句唐诗1 小时前
设计与实现高性能安全TOKEN系统
前端·网络·安全
低头不见2 小时前
一个服务器算分布式吗,分布式需要几个服务器
运维·服务器·分布式