首頁技術(shù)文章正文

什么是Beautiful Soup?

更新時間:2021-04-29 來源:黑馬程序員 瀏覽量:

截止到目前,BeautifulSoup(3.2.1版本)已經(jīng)停止開發(fā),官網(wǎng)推薦現(xiàn)在的項目使用beautifulsoup4(BeautifulSoup 4版本,簡稱為bs4)開發(fā)。

bs4是一個HTML/XML的解析器,主要的功能是解析和提取HTML/XML數(shù)據(jù)。它不僅支持CSS選擇器,而且支持Python標(biāo)準(zhǔn)庫中的HTML解析器,以及l(fā)xml的XML解析器,通過使用這些轉(zhuǎn)化器,實現(xiàn)了慣用的文檔導(dǎo)航和查找方式,節(jié)省了大量的工作時間,提高了開發(fā)項目的效率。

bs4庫會將復(fù)雜的HTML文檔換成樹結(jié)構(gòu)(HTML DOM),這個結(jié)構(gòu)中的每個節(jié)點都是一個Python對象,這些對象可以歸納為如下四種:

bs4.element.Tag類:表示HTML中的標(biāo)簽,最基本的信息組織單元。它有兩個非常重要的屬性,分別為表示標(biāo)簽名字的name屬性,表示標(biāo)簽屬性的attrs屬性。

bs4.element.NavigableString類:表示HTML中標(biāo)簽的文本(非屬性字符串)。

bs4.BeautifulSoup類:表示HTML DOM中的全部內(nèi)容,支持遍歷文檔樹和搜索文檔樹的大部分方法。

bs4.element.Comment類:表示標(biāo)簽內(nèi)字符串的注釋部分,是一種特殊的NavigableString對象。

1619667477510_Beautiful-Soup1.jpg


使用bs4的一般流程如下

第1步:創(chuàng)建一個BeautifulSoup類型的對象

根據(jù)HTML或者文件創(chuàng)建BeautifulSoup對象。

第2步:通過上述對象的操作方法進行解讀搜索

根據(jù)DOM樹進行各種節(jié)點的搜索(比如,find_all方法可以搜索出所有滿足要求的節(jié)點,find方法只會搜索出第一個滿足要求的節(jié)點),只要獲得了一個節(jié)點,就可以訪問節(jié)點的名稱、屬性和文本。

第3步:利用DOM樹結(jié)構(gòu)標(biāo)簽的特性,進行更為詳細(xì)的節(jié)點信息提取

在搜索節(jié)點的時候,我們也可以按照節(jié)點的名稱、節(jié)點的屬性或者節(jié)點的文字進行搜索。

上述流程如圖1所示。

什么是Beautiful Soup

圖1 bs4庫的使用流程





猜你喜歡:

怎樣能保障Kafka儲存的數(shù)據(jù)不丟失?

MyBatis框架如何實現(xiàn)數(shù)據(jù)查詢?有幾種方法?

在數(shù)據(jù)處理中哪些場景可以使用Spark?    

什么是XML?怎樣使用XML解析樹狀結(jié)構(gòu)數(shù)據(jù)?

黑馬程序員Python+大數(shù)據(jù)開發(fā)培訓(xùn)

分享到:
在線咨詢 我要報名
和我們在線交談!