Python bs4模塊(BeautifulSoup4)是Python解析HTML和XML文檔的一個庫,它可以從HTML或XML格式的文檔中提取數據。
一、安裝bs4模塊
使用bs4模塊需要先安裝bs4模塊,方法如下:
pip install bs4
安裝完成之後,我們可以在Python代碼中直接導入bs4模塊。
二、使用bs4解析HTML文檔
1、解析HTML
使用bs4解析HTML文檔的方法非常簡單,只需要將HTML文檔傳入BeautifulSoup類中即可:
from bs4 import BeautifulSoup
html_doc = <html><head><title>這是一個測試頁面</title></head><body><p>這是一個測試段落</p></body></html>
soup = BeautifulSoup(html_doc, 'html.parser')
2、查找標籤
使用bs4可以非常輕鬆地查找HTML文檔中的標籤,可以通過標籤名、class、id等屬性進行查找。
(1)按標籤名查找
通過soup.tagname可以按照標籤名查找HTML文檔中的標籤,如下例子中查找HTML文檔中的title標籤:
from bs4 import BeautifulSoup
html_doc = <html><head><title>這是一個測試頁面</title></head><body><p>這是一個測試段落</p></body></html>
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.title)
輸出結果為:
<title>這是一個測試頁面</title>
(2)按class查找
通過soup.find_all(‘tagname’, class_=’classname’)可以按照class屬性查找HTML文檔中的標籤,如下例子中查找HTML文檔中class屬性為「test」的p標籤:
from bs4 import BeautifulSoup
html_doc = <html><head><title>這是一個測試頁面</title></head><body><p class="test">這是一個測試段落</p></body></html>
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.find_all('p', class_='test'))
輸出結果為:
[<p class="test">這是一個測試段落</p>]
(3)按id查找
通過soup.find_all(‘tagname’, id=’idname’)可以按照id屬性查找HTML文檔中的標籤,如下例子中查找HTML文檔中id屬性為「test」的p標籤:
from bs4 import BeautifulSoup
html_doc = <html><head><title>這是一個測試頁面</title></head><body><p id="test">這是一個測試段落</p></body></html>
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.find_all('p', id='test'))
輸出結果為:
[<p id="test">這是一個測試段落</p>]
三、使用bs4解析XML文檔
bs4同樣可以用來解析XML格式的文檔,在傳入文檔時只需要設置解析器為「xml」即可。
from bs4 import BeautifulSoup
xml_doc = <?xml version="1.0" encoding="UTF-8"?><root><test>這是一個測試</test></root>
soup = BeautifulSoup(xml_doc, 'xml')
print(soup.test)
輸出結果為:
<test>這是一個測試</test>
四、結語
Python bs4模塊非常方便實用,可以用來解析HTML和XML格式的文檔,從而提取出需要的信息。在實際開發中,經常需要對網頁數據進行提取,使用bs4模塊可以輕鬆實現這個需求。
原創文章,作者:FZICP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331996.html