HTML 解析之 BeautifulSoup
在網(wǎng)頁數(shù)據(jù)采集、信息提取等應(yīng)用場景中,對HTML文檔進(jìn)行解析是一項(xiàng)至關(guān)重要的任務(wù)。BeautifulSoup 是 Python 中用于解析HTML和XML文檔的強(qiáng)大庫,提供了方便的API和豐富的功能,可幫助開發(fā)者輕松地從網(wǎng)頁中提取所需的數(shù)據(jù)。本文將介紹 BeautifulSoup 的基本用法、常見功能和實(shí)際應(yīng)用,幫助讀者深入了解如何利用 BeautifulSoup 進(jìn)行HTML解析,從而提高數(shù)據(jù)處理和信息提取的效率和準(zhǔn)確性。
本文引用地址:http://m.butianyuan.cn/article/202406/460383.htm一、基本用法
1.1 安裝和導(dǎo)入
要使用 BeautifulSoup 庫,首先需要安裝該庫??梢允褂?pip 工具進(jìn)行安裝:
pip install beautifulsoup4
安裝完成后,可以通過以下方式導(dǎo)入 BeautifulSoup:
from bs4 import BeautifulSoup
1.2 創(chuàng)建 BeautifulSoup 對象
通過將HTML文檔傳遞給 BeautifulSoup 構(gòu)造函數(shù),即可創(chuàng)建一個 BeautifulSoup 對象,用于后續(xù)的解析和操作:
html_doc = """<html><head><title>示例網(wǎng)頁</title></head><body><p class="title"><b>示例頁面內(nèi)容</b></p><p class="content">這是一個示例網(wǎng)頁。</p></body></html>soup = BeautifulSoup(html_doc, 'html.parser')
二、常見功能
2.1 標(biāo)簽選擇器
BeautifulSoup 支持通過標(biāo)簽選擇器來定位HTML文檔中的標(biāo)簽,從而提取所需信息。以下是標(biāo)簽選擇器的常見用法:
# 選擇第一個 title 標(biāo)簽
title = soup.title
# 選擇所有的 p 標(biāo)簽
paragraphs = soup.find_all('p')
2.2 數(shù)據(jù)提取
通過 BeautifulSoup,可以方便地提取標(biāo)簽的文本內(nèi)容、屬性信息等:
# 提取標(biāo)簽文本內(nèi)容
title_text = title.get_text()
# 提取標(biāo)簽屬性
p_class = paragraphs[0]['class']
2.3 CSS 選擇器
除了標(biāo)簽選擇器外,BeautifulSoup 還支持類似 CSS 選擇器的語法,用于定位HTML文檔中的元素:
# 通過 CSS 選擇器選擇標(biāo)簽
content = soup.select('.content')
# 通過 CSS 選擇器選擇子標(biāo)簽
title_b = soup.select('p.title b')
2.4 數(shù)據(jù)修改
除了提取數(shù)據(jù)外,BeautifulSoup 也支持對HTML文檔進(jìn)行修改和操作,如新增、刪除標(biāo)簽等:
# 新增一個 p 標(biāo)簽
new_paragraph = soup.new_tag('p')
new_paragraph.string = '新增的段落'
soup.body.append(new_paragraph)
# 刪除指定的標(biāo)簽
title_b.extract()
評論