使用 Python 中的 BeautifulSoup 從給定的 html 文件中查詢標題標籤


從網頁提取資料的一種常見方法稱為網路爬取,強大的 Python 包 BeautifulSoup 使其變得簡單。在這篇文章中,我們將重點關注使用 Python 的 BeautifulSoup 從給定的 HTML 文字中提取標題標籤。

安裝和語法

在開始編寫任何程式碼之前,請確保您的機器上已安裝 BeautifulSoup,這可以透過 Python 包安裝程式 pip 完成,在您的終端中輸入命令即可。

pip install beautifulsoup4

為了使用 BeautifulSoup 從 HTML 頁面提取標題標籤,我們必須首先透過將 HTML 內容或檔案提供給 BeautifulSoup 類的函式來構建一個 BeautifulSoup 物件。然後可以使用find()find_all()方法找到 HTML 頁面中的“title”元素,最後一步是使用標籤物件的 text 屬性獲取“title”標籤中包含的文字。

演算法

以下是使用 Python 中的 BeautifulSoup 從給定的 HTML 文件中查詢標題標籤的演算法:

  • 匯入必要的模組 - requestsBeautifulSoup

  • 向網頁傳送GET請求並獲取其內容

  • 從 HTML 內容建立 BeautifulSoup物件

  • 查詢 HTML 文件中的所有'title'標籤

  • 獲取每個'title'標籤內的文字

示例 1:從本地 HTML 檔案中查詢標題標籤

Index.html

<!DOCTYPE html>
<html>
<head>
   <title>My Webpage Title</title>
</head>
<body>
   <h1>Welcome to my webpage</h1>
   <p>This is some sample text for demonstration purposes.</p>
</body>
</html>

sample_scraper.py

from bs4 import BeautifulSoup

# read the contents of the HTML file
with open('index.html', 'r') as file:
   html_content = file.read()

# create a BeautifulSoup object
soup = BeautifulSoup(html_content, 'html.parser')

# find the title tag and get its text
title_tag = soup.find('title')
title_text = title_tag.text

print(title_text)

輸出

My Webpage Title

使用“with open()”語句讀取本地 HTML 檔案的內容。然後,我們從 HTML 內容建立 BeautifulSoup 物件,並使用 find() 方法查詢 HTML 文件中的“title”標籤。最後,我們使用標籤物件的 text 屬性獲取“title”標籤內的文字,然後將其列印到控制檯。

示例 2:使用 Requests 從網頁中查詢標題標籤

from bs4 import BeautifulSoup
import requests

# send a GET request to the web page and get its content
url = 'https://www.example.com'
response = requests.get(url)
content = response.content

# create a BeautifulSoup object
soup = BeautifulSoup(content, 'html.parser')

# find the title tag and get its text
title_tag = soup.find('title')
title_text = title_tag.text

print(title_text)

輸出

Example Domain

使用 requests 庫向網頁傳送 GET 請求並獲取其內容,然後使用find()方法查詢 HTML 文件中的“title”標籤並從 HTML 內容建立 BeautifulSoup 物件。最後,使用標籤物件的 text 屬性獲取“title”標籤中包含的文字,將其列印到控制檯。

示例 3:從網頁中查詢標題標籤

之前用於查詢具有特定名稱的所有標籤的相同find_all()方法可用於查詢網頁上的標題標籤。由於標題標籤通常是 HTML 頁面中唯一的標籤,因此可以使用 find() 函式檢索第一個標題標籤。

import requests
from bs4 import BeautifulSoup

# Make a request to the webpage
page = requests.get("https://en.wikipedia.org/wiki/Web_scraping")

# Create a BeautifulSoup object
soup = BeautifulSoup(page.content, 'html.parser')

# Find the title tag
title_tag = soup.find('title')

# Output text contained within <title></title>
print(title_tag.text)

輸出

Web scraping - Wikipedia

首先使用 requests 庫向維基百科上關於網路爬取的頁面發出請求。然後,我們使用'html.parser'解析器從頁面的 HTML 內容建立 BeautifulSoup 物件。接下來,我們使用 find() 方法獲取 HTML 文件中的第一個標題標籤,並使用title_tag物件的 text 屬性列印標籤內的文字。

應用

  • 網路爬取 - 在為專案從多個頁面收集資料時,提取頁面的標題。

  • SEO 分析 - 在檢查網頁標題時,標題標籤有助於識別搜尋引擎排名靠前的網站標題中的模式或趨勢。為了讓資料分析師檢查新聞文章、部落格文章和其他型別的資訊,可以使用標題標籤來識別其標題。

  • 因為它們提供了對網站內容的簡潔易懂的描述,所以標題標籤是頁面內 SEO 的重要組成部分,因此透過為每個頁面提供獨特且相關的標題,您可以改善使用者體驗。

結論

在本教程文章中,我們瞭解了find_all()find()方法的語法以及如何使用它們從網頁中提取資料。我們還學習瞭如何在 Python 中使用 BeautifulSoup 在 HTML 文件中查詢標題標籤。根據一些從網頁中查詢標題標籤的示例以及標題標籤提取的一些應用,BeautifulSoup 是一個強大的網路爬取和資料提取庫,對於對這些問題感興趣的任何人來說,值得進一步研究。

更新於:2023年8月21日

975 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告