教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

什么是Beautiful Soup?

更新時間:2021年04月29日11時37分 來源:傳智教育 瀏覽次數(shù):

傳智教育-一樣的教育,不一樣的品質(zhì)


截止到目前,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對象。

使用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)簽的特性,進行更為詳細的節(jié)點信息提取

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

上述流程如圖1所示。

什么是Beautiful Soup

圖1 bs4庫的使用流程




猜你喜歡:

大數(shù)據(jù)基本的業(yè)務(wù)分析應(yīng)該包括哪些流程?怎樣收集數(shù)據(jù)?

為什么要做數(shù)據(jù)分析?數(shù)據(jù)分析有什么意義?

YARN體系結(jié)構(gòu)工作流程介紹【大數(shù)據(jù)文章】

傳智教育Python+大數(shù)據(jù)開發(fā)

0 分享到:
和我們在線交談!