【學習心得】網絡中常見數據格式(爬蟲入門知識)

? ? ? ?在爬蟲爬取數據的之前,必須先系統的了解一下我們待爬取的數據有哪些格式,這樣做的好處在與能針對不同的數據類型采取不同分方法手段。

一、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是一種針對流媒體傳輸而設計的文件容器格式,支持把不同的數據流封裝和同步傳輸,在數字媒體領域用途廣泛。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713356.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713356.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713356.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何解決幻獸帕魯/Palworld服務器聯機游戲時的丟包問題?

如何解決幻獸帕魯/Palworld服務器聯機游戲時的丟包問題? 等待服務器維護:首先,確保網絡連接穩定,然后查看游戲官方或社區論壇,了解是否有服務器維護的消息。這是解決丟包問題的一種直接且有效的方法。 更新顯卡驅動&a…

Siemens-NXUG二次開發-獲取prt中體與類型、實體面與類型、實體邊與類型、邊上點的Tag標識[Python UF][20240302]

Siemens-NXUG二次開發-獲取prt中體與類型、實體面與類型、實體邊與類型、邊上點的Tag標識[Python UF][20240302] 1.python uf函數1.1 NXOpen.UF.Obj.CycleObjsInPart1.2 NXOpen.UF.Obj.AskTypeAndSubtype1.3 NXOpen.UF.Modeling.AskBodyFaces1.4 NXOpen.UF.Modeling.AskFaceEdg…

RISC-V特權架構 - 機器模式下的異常處理

RISC-V特權架構 - 機器模式下的異常處理 1 進入異常1.1 從mtvec 定義的PC 地址開始執行1.2 更新CSR 寄存器mcause1.3 更新CSR 寄存器mepc1.4 更新CSR 寄存器mtval1.5 更新CSR 寄存器mstatus 2 退出異常2.1 從mepc 定義的PC 地址開始執行2.2 更新CSR 寄存器mstatus 3 異常服務程…

Android Tombstone 分析

1.什么是tombstone Tombstone是指在分布式系統中用于標記數據已被刪除的記錄,通常包含刪除操作的時間戳和相關信息。 當一個動態庫(native程序)開始執行時,系統會注冊一些連接到 debuggerd 的signal handlers。當系統發生崩潰時…

wpa_supplicant與用戶態程序的交互分析

1 wpa_supplicant與用戶態程序wpa_cli的交互過程 1.1 交互接口類型 wpa_supplicant與用戶態程序交互的主要接口包括以下幾種: 1)命令行界面:通過命令行工具 wpa_cli 可以與 wpa_supplicant 進行交互。wpa_cli 允許用戶執行各種 wpa_suppli…

Spark Shuffle Tracking 原理分析

Shuffle Tracking Shuffle Tracking 是 Spark 在沒有 ESS(External Shuffle Service)情況,并且開啟 Dynamic Allocation 的重要功能。如在 K8S 上運行 spark 沒有 ESS。本文檔所有的前提都是基于以上條件的。 如果開啟了 ESS,那么 Executor 計算完后&a…

MySQL 表的基本操作,結合項目的表自動初始化來講

有了數據庫以后,我們就可以在數據庫中對表進行增刪改查了,這也就意味著,一名真正的 CRUD Boy 即將到來(😁)。 查表 查看當前數據庫中所有的表,使用 show tables; 命令 由于當前數據庫中還沒有…

基于Python3的數據結構與算法 - 09 希爾排序

一、引入 希爾排序是一種分組插入排序的算法。 二、排序思路 首先取一個整數d1 n/2,將元素分為d1個組,每組相鄰量取元素距離為d1,在各組內直接進行插入排序;取第二個整數d2 d1/2, 重復上述分組排序過程&#xff0…

Angular 2 中的樣式綁定和 NgStyle

在 Angular 2 模板中綁定內聯樣式很容易。以下是一個綁定單個樣式值的示例&#xff1a; 你還可以指定單位&#xff0c;例如在這里我們將單位設置為 em&#xff0c;但也可以使用 px、% 或 rem&#xff1a; <p [style.font-size.em]"3">A paragraph at 3em! &l…

CSS 自測題 -- 用 flex 布局繪制骰子(一、二、三【含斜三點】、四、五、六點)

一點 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>css flex布局-畫骰子</title><sty…

vue3 滾動條觸底監聽

問題&#xff1a;指定區域內&#xff0c;顯示返回的數據&#xff0c;要求先顯示20條&#xff0c;區域超出部分滾動顯示&#xff0c;對滾動條進行監聽&#xff0c;滾動條觸底后&#xff0c;繼續顯示下20條... 解決過程&#xff1a; 1.在區域的div上&#xff0c;添加scroll事件…

Unity 切換場景

場景切換前必須要將場景拖動到Build中 同步加載場景 using System.Collections; using System.Collections.Generic; //using UnityEditor.SearchService; using UnityEngine; // 場景管理 需要導入該類 using UnityEngine.SceneManagement;public class c3 : MonoBehaviour {…

redis五大基礎類型【重點】

之前寫過一點小知識&#xff1a;https://blog.csdn.net/qq_45927881/article/details/134959181?spm1001.2014.3001.5501 參考鏈接 https://xiaolincoding.com/redis/data_struct/command.html#%E4%BB%8B%E7%BB%8D 目錄 1. string&#xff08;字符串&#xff09;2. Hash&#…

MySql安全加固:配置不同用戶不同賬號禁止使用舊密碼禁止MySql進程管理員權限

MySql安全加固&#xff1a;配置不同用戶不同賬號&禁止使用舊密碼&禁止MySql進程管理員權限 1.1 檢查是否配置不同用戶不同賬號1.2 檢查是否禁止使用舊密碼1.3 禁止MySql進程管理員權限 &#x1f496;The Begin&#x1f496;點點關注&#xff0c;收藏不迷路&#x1f496…

【c++】通訊錄管理系統

1.系統功能介紹及展示 2.創建項目 3.菜單實現 4.退出功能實現 5.添加聯系人—結構體設計 6.添加聯系人—功能實現 7.顯示聯系人 8.刪除練習人—檢測聯系人是否存在 9.刪除聯系人—功能實現 10.查找聯系人 11.修改聯系人 12.清空通訊錄 #include <iostream> #include <…

什么是VR虛擬社區|VR元宇宙平臺|VR主題館加盟

VR虛擬社區是指一種基于虛擬現實技術構建的在線社交平臺或環境&#xff0c;用戶可以在其中創建虛擬化的個人形象&#xff08;也稱為avatars&#xff09;并與其他用戶進行交流、互動和合作。在VR虛擬社區中&#xff0c;用戶可以選擇不同的虛擬場景和環境&#xff0c;如虛擬公園、…

fly-barrage 前端彈幕庫(3):滾動彈幕的設計與實現

項目官網地址&#xff1a;https://fly-barrage.netlify.app/&#xff1b; &#x1f451;&#x1f40b;&#x1f389;如果感覺項目還不錯的話&#xff0c;還請點下 star &#x1f31f;&#x1f31f;&#x1f31f;。 Gitee&#xff1a;https://gitee.com/fei_fei27/fly-barrage&a…

顯示器開機正常,插入HDMI線卻不顯示畫面,換了HDMI線還是不行?

環境&#xff1a; 惠普/P24VG4 DELL筆記本 問題描述&#xff1a; 顯示器開機正常&#xff0c;插入HDMI線卻不顯示畫面&#xff0c;換了HDMI線還是不行&#xff0c;是不是顯示器壞了&#xff1f; 解決方案&#xff1a; 1.前往顯示器設置菜單里面查看input 2.把輸入源默認設…

二百二十五、海豚調度器——用DolphinScheduler調度執行Flume數據采集任務

一、目的 數倉的數據源是Kafka&#xff0c;因此離線數倉需要用Flume采集Kafka中的數據到HDFS中 在實際項目中&#xff0c;不可能一直在Xshell中啟動Flume任務&#xff0c;一是項目的Flume任務很多&#xff0c;二是一旦Xshell頁面關閉Flume任務就會停止&#xff0c;這樣非常不…

案例研究|DataEase助力眾陶聯應對產業鏈數據可視化挑戰

佛山眾陶聯供應鏈服務有限公司&#xff08;以下簡稱為“眾陶聯”&#xff09;成立于2016年&#xff0c;是由34家陶瓷企業共同創辦的建陶行業工業互聯網平臺&#xff0c;股東產值占整個行業的22.5%。眾陶聯以數據賦能為核心&#xff0c;積極探索新的交易和服務模式&#xff0c;構…