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

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

什么是Beautiful Soup?

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

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


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

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

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

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

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

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

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

使用bs4的一般流程如下

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

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

第2步:通過上述對(duì)象的操作方法進(jìn)行解讀搜索

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

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

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

上述流程如圖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 分享到:
和我們?cè)诰€交談!