使用 BeautifulSoup 查詢給定標籤的文字


BeautifulSoup 是一款功能強大的工具,可以輕鬆地從 HTML 和 XML 文件中提取資訊,主要使用 Python 開發,用於網頁抓取和網頁資料提取。BeautifulSoup 最有用的功能之一是能夠在文件中查詢特定的標籤。在本博文中,我們將探討如何使用 BeautifulSoup 查詢給定標籤的文字以及一些示例。

安裝和語法

在使用 BeautifulSoup 之前,需要先安裝它,因此請使用 Python 包管理器並在終端中執行以下命令。

pip install beautifulsoup4

安裝 BeautifulSoup 後,我們可以使用以下程式碼將其匯入到 Python 程式碼中:

from bs4 import BeautifulSoup

使用 BeautifulSoup 查詢標籤文字的語法如下:

soup.find('tag_name').text

演算法

  • 將 HTML 檔案或內容傳遞給 BeautifulSoup 類的函式以建立 BeautifulSoup 物件。

  • 利用 **find()** 函式查詢要搜尋的標籤或標記。透過使用標記物件的 text 屬性獲取包含在標籤內的文字。

  • 如果不存在 HTML 或 **XML** 標記,這將生成一個僅包含標籤中文字的字串。

  • 如果我們有興趣這樣做,我們可以透過使用迴圈重複遍歷 **find_all()** 生成的標籤列表來使用 text 屬性獲取每個標籤中包含的文字。

示例 1

from bs4 import BeautifulSoup
html = '<html><body><h1>Hello, World!</h1></body></html>'
soup = BeautifulSoup(html, 'html.parser')
heading = soup.find('h1')
print(heading.text)

輸出

Hello, World!

建立一個 HTML 字串並將其與要使用的解析器一起傳遞給 BeautifulSoup 建構函式。使用 **find()** 方法查詢 h1 標籤並將其儲存在 heading 變數中。最後,使用 heading 物件的 text 屬性獲取標籤內的文字。

示例 2

from bs4 import BeautifulSoup
html = '<html><body><p>TutorialsPoint Web Scraping Example Text</p></body></html>'
soup = BeautifulSoup(html, 'html.parser')
paragraph = soup.find('p')
print(paragraph.text)

輸出

TutorialsPoint Web Scraping Example Text

從包含段落標籤和一些文字的 HTML 字串開始,並使用 find() 方法找到段落標籤並將其儲存在 paragraph 變數中。將透過使用 paragraph 物件的 text 屬性獲取標籤中的文字。

讓我們來看一個更大的示例,瞭解如何使用 BeautifulSoup 查詢多個標籤的文字:

import requests
from bs4 import BeautifulSoup
url = 'https://www.pythonforbeginners.com/'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
headings = soup.find_all('h3')
for heading in headings:
   print(heading.text)

輸出

Popular Python Tutorials
Categories
Loops
Regular Expressions
Python Games
Basics
Functions
Code Examples
Strings
Dictionaries
Python on the Web
Lists
Modules
Python Comments
Latest Content
Convert INI Files to JSON Format in Python
Convert XML to INI Format in Python
Pandas Insert Row into a DataFrame
Convert INI to XML Format in Python

在這種情況下,使用 requests 庫向 url 變數中指示的網站傳送 **GET** 請求,類似地,使用 BeautifulSoup 解析器技術解析響應的 HTML 資料。然後,使用 find all() 查詢頁面上的所有 h2 標籤並將它們儲存在 headings 變數中。最後,使用迴圈遍歷每個標題並使用 text 屬性輸出其內容。

應用

BeautifulSoup 的應用領域包括線上抓取、資料提取和資料分析。它可以用來抓取新聞文章、社交媒體資訊和各種其他來源以從網站獲取資料,因此它的一個典型用例是 Web 自動化和測試。它也是開發人員的有用工具,因為它支援各種解析器,包括 **HTML** 和 **XML**。網頁抓取和資料提取的使用者友好語法和豐富的文件使初學者易於上手。

結論

BeautifulSoup 是一款功能強大的應用程式,可以簡化網頁抓取和資料提取。由於其簡單的語法,可以快速訪問 HTML 或 XML 文件中標籤的文字。無論您是熱衷於從網站抓取資訊還是對其進行分析,BeautifulSoup 都是您工具箱中必不可少的一款工具。此外,它簡化了遍歷 HTML 樹結構並從多個頁面同時提取特定資料。由於其使用者友好的介面和豐富的文件,BeautifulSoup 對於任何資料科學家或 Web 開發人員來說都是必不可少的。

更新於: 2023年8月21日

4K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告