Python爬蟲之BeautifulSoup庫的入門與使用

上篇文章中,Python爬蟲之requests庫網(wǎng)絡(luò)爬取簡單實(shí)戰(zhàn)
我們學(xué)習(xí)了如何利用requets庫快速獲取頁面的源代碼信息。我們在具體的爬蟲實(shí)踐的時候,第一步就是獲取到頁面的源代碼,但是僅僅是獲取源代碼是不夠的,我們還需要從頁面的源代碼中提取出我們所需要的那一部分的信息。所以,爬蟲的難點(diǎn)就在于對源代碼的信息的提取與處理。
Beautiful Soup 是一個可以從HTML或XML文件中提取數(shù)據(jù)的Python庫.它能夠通過你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式.Beautiful Soup會幫你節(jié)省數(shù)小時甚至數(shù)天的工作時間.

具體的BeautifulSoup的安裝與介紹比較簡單,我們可以參考https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id17

Beautiful Soup庫的理解

簡單的說,BeautifulSoup庫可以將一個html文檔轉(zhuǎn)換成一個BeautifulSoup類,然后我們就可以使用BeautifulSoup的各種方法提取出我們所需要的元素

Beautiful Soup庫是解析、遍歷、維護(hù)“標(biāo)簽樹”的功能庫

要理解與使用BeautifulSoup庫我們就需要對html文檔有了解

image.png

Beautiful Soup庫的引用

Beautiful Soup庫,也叫beautifulsoup4 或 bs4
約定引用方式如下,即主要是用BeautifulSoup類

from bs4 import BeautifulSoup
import bs4
image.png

BeautifulSoup對應(yīng)一個HTML/XML文檔的全部內(nèi)容

Beautiful Soup庫解析器

soup = BeautifulSoup('<html>data</html>','html.parser')
image.png

BeautifulSoup類的基本元素

image.png

BeautifulSoup解析實(shí)例

我們先用requests庫獲取一個簡單的頁面
http://python123.io/ws/demo.html

image.png
import requests

r = requests.get("http://python123.io/ws/demo.html")

demo = r.text

print(demo)
image.png
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(demo, 'html.parser')
>>> soup.prettify()

我們可以利用BeautifulSoup庫對頁面進(jìn)行解析和提取

Tag 標(biāo)簽

image.png
>>> soup.title
<title>This is a python demo page</title>
>>> tag = soup.a
>>> tag
<a class="py1"  id="link1">Basic Python</a>

任何存在于HTML語法中的標(biāo)簽都可以用soup.<tag>訪問獲得
當(dāng)HTML文檔中存在多個相同<tag>對應(yīng)內(nèi)容時,soup.<tag>返回第一個

Tag的name(名字)

image.png
>>> soup.a.name
'a'
>>> soup.a.parent.name
'p'
>>> 

每個<tag>都有自己的名字,通過<tag>.name獲取,字符串類型

Tag的attrs(屬性)

image.png

Tag的NavigableString

image.png
image.png

Tag的Comment

image.png
image.png

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

image.png
image.png

標(biāo)簽樹的下行遍歷

image.png

BeautifulSoup類型是標(biāo)簽樹的根節(jié)點(diǎn)

標(biāo)簽樹的下行遍歷


image.png
image.png

標(biāo)簽樹的上行遍歷

image.png
image.png
image.png

標(biāo)簽樹的平行遍歷

image.png
image.png
image.png
image.png
image.png

小結(jié)

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

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

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