html = """<div class="app-moreinfo-v"> <p>版本:1.5.3</p> <p>版本:</p> <p>更新時間:2023-06-21 16:54:10</p> <!-- <p>語言:中文</p> --> </div>""" soup = BeautifulSoup(html, 'lxml') print(soup.find('p', string=lambda t: "版本:" in t)) # 獲取到包含"版本:"字串的整行p元素 print(soup.find(string=lambda t: "版本:" in t)) # 獲取包含"版本:"字串的文字內容 print(soup.find('p', string="版本:")) # 獲取文字為"版本:"的整行p元素 print(soup.find(string="版本:")) # 獲取文字為"版本:"字串的文字內容
# 輸出內容
<p>版本:1.5.3</p>
版本:1.5.3
<p>版本:</p>
版本:
# 總結: string=一個lambda函式時為模糊匹配包含某個文字的資料, string=一個字串時為精確匹配某個文字的資料 # 加元素標籤為匹配到的整行元素,不加標籤為匹配到的文字內容