Beautiful Soup 庫入門

1 BeautifulSoup (“美味的湯”)庫的安裝

方式一:"windows+R" 輸入 cmd,在命令行中輸入 pip install beautifulsoup4 安裝完成后可以通過 from bs4 import BeautifukSoup 進行檢測,不報錯,安裝成功。

方式二:從官網(wǎng)下載 Beautifulsoup 的軟件包并解壓,cmd 命令行進入解壓包目錄,輸入以下命令安裝:python setup.py install 在 Python3 里一定要安裝 beautifulsoup4 的版本,其它版本安裝不上的。

import requests
r = requests.get("http://www.baidu.com")
demo = r.text
from bs4 import BeautifulSoup
soup = BeautifulSoup(demo,"html.parser")
print(soup.prettify())

Beautiful Soup 庫是解析、遍歷、維護“標簽樹”的功能庫

HTML 標簽樹

a) Beautiful Soup 是用 Python 寫的一個 HTML/XML 的解析器,它可以很好的處理不規(guī)范標記并生成剖析樹(parse tree)。
b) 它提供簡單又常用的導航(navigating),搜索以及修改剖析樹的操作??梢怨?jié)省你的編程時間。

BeautifulSoup 庫本身解析的是 html/xml 文檔,那么這個文檔與標簽樹是一一對應的,經(jīng)過了 BeautifulSoup 類的處理,html 或 xml 文檔這樣的標簽樹,就被轉(zhuǎn)換成一個 BeautifulSoup 類。BeautifulSoup 類就是能夠代表標簽樹的一個類型。

Beautiful Soup 庫解析器

2 BeautifulSoup類的基本元素

代碼示例

任何存在于 HTML 語法中的標簽都可以用 soup.<tag> 訪問獲得當 HTML 文檔中存在多個相同 <tag> 對應內(nèi)容時,soup.<tag> 返回第一個。每個<tag> 都有自己的名字,通過 <tag>.name 獲取,字符串類型

一個 <tag> 可以有 0 或多個屬性,字典類型

Navigablestring 可以跨越多個層次(p 標簽中的 b 標簽)

Comment 是一種特殊類型

3 基于 bs4 庫的 HTML 內(nèi)容遍歷方法

HTML基本格式

<>...</> 構(gòu)成了所屬關(guān)系,形成了標簽的樹形結(jié)構(gòu)

標簽樹的下行遍歷

BeautifulSoup 類型是標簽樹的根節(jié)點

標簽樹的上行遍歷

標簽樹的平行遍歷

平行遍歷發(fā)生在同一個父節(jié)點下的各節(jié)點間,不是同一個父標簽不構(gòu)成平行遍歷。

在標簽樹中,盡管樹形結(jié)構(gòu)采用的是標簽的形式來組織的,但是標簽之間的 Navigablestring 也構(gòu)成了標簽樹的節(jié)點,也就是說,任何一個節(jié)點,它的平行標簽,它的兒子標簽是可能存在 Navigablestring 類型的。

4 基于 bs4 庫的 HTML 格式化和編碼

如何讓 <html> 內(nèi)容更加 “友好” 的顯示?

bs4 庫的 prettify() 方法,為 html 文本的標簽和內(nèi)容增加換行符,也可以對每個標簽進行相關(guān)處理,方法:<tag>.prettify()。

bs4 庫將任何 HTML 輸入都變成 utf-8 編碼,Python 3.x 默認支持編碼是utf-8,解析無障礙。

BeautifulSoup庫知識小結(jié)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容