使用 Python 從網頁提取標題


在 Python 中,我們可以使用網頁抓取來從網頁提取標題。網頁抓取是從網站或網頁提取資料的過程。在本文中,我們將使用 Python 中的 Requests 和 BeautifulSoup 庫來抓取網頁的標題。

從網頁提取標題

方法 1:使用 Request 和 Beautiful Soup 庫

我們可以使用 Python 的 Request 和 Beautiful Soup 庫從網頁提取標題。Requests 庫用於向網站傳送 HTTP 請求並獲取其響應。然後,我們使用響應物件提取網頁的 HTML 內容。

示例

在下面的示例中,我們提取維基百科主頁的標題。我們使用 Request 庫向維基百科頁面 URL 傳送 GET 請求,並將響應物件儲存在 response 變數中。

然後,我們可以使用 Beautiful Soup 物件解析在響應物件中接收到的 HTML 內容,並使用 **soup.title** 屬性提取網頁的 title 標籤。然後,我們可以提取字串屬性並將其儲存在 title 變數中。

import requests
from bs4 import BeautifulSoup

url = 'https://www.wikipedia.org/'
response = requests.get(url)

soup = BeautifulSoup(response.content, 'html.parser')
title = soup.title.string

print(title)

輸出

Wikipedia

方法 2:使用 urllib 和 BeautifulSoup 提取標題

urllib 和 BeautifulSoup 方法用於透過開啟 URL 並使用 urllib 庫檢索網頁的 HTML 內容來從網頁提取標題。使用 HTML 內容建立一個 BeautifulSoup 物件,並且可以使用“soup.title”屬性提取網頁的 title 標籤。

示例

在下面的示例中,我們使用 urllib 庫開啟 URL 並檢索網頁的 HTML 內容。然後,我們使用 **'html.parser'** 解析器使用網頁的 HTML 內容建立一個 BeautifulSoup 物件。

然後,我們可以使用 **'soup.title'** 屬性提取網頁的 title 標籤。最後,我們使用“string”屬性提取 title 標籤的字串內容並將其儲存在“title”變數中。然後,我們將網頁的標題列印到控制檯。

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = 'https://www.wikipedia.org/'
html_page = urlopen(url)
soup = BeautifulSoup(html_page, 'html.parser')
title = soup.title.string

print(title)

輸出

Wikipedia

方法 3:使用 selenium 和 BeautifulSoup 提取標題

selenium 和 BeautifulSoup 方法用於透過使用 selenium 庫開啟 URL 並檢索網頁的 HTML 內容來從網頁提取標題。建立一個 Chrome webdriver 並用於導航到網頁。使用 webdriver 的“page_source”屬性檢索網頁的 HTML 內容。使用 HTML 內容建立一個 BeautifulSoup 物件,並且可以使用“soup.title”屬性提取網頁的 title 標籤。

示例

在下面的示例中,我們使用 selenium 庫開啟 URL 並檢索網頁的 HTML 內容。我們建立一個 Chrome webdriver 並使用它導航到網頁。然後,我們使用 webdriver 的“page_source”屬性檢索網頁的 HTML 內容。

我們使用“html.parser”解析器使用網頁的 HTML 內容建立一個 BeautifulSoup 物件。然後,我們可以使用“soup.title”屬性提取網頁的 title 標籤。最後,我們使用“string”屬性提取 title 標籤的字串內容並將其儲存在“title”變數中。然後,我們將網頁的標題列印到控制檯。

from selenium import webdriver
from bs4 import BeautifulSoup

url = 'https://www.wikipedia.org/'
driver = webdriver.Chrome()
driver.get(url)

html_page = driver.page_source
soup = BeautifulSoup(html_page, 'html.parser')
title = soup.title.string

print(title)

driver.quit()

輸出

Wikipedia

方法 4:使用正則表示式提取標題

正則表示式方法用於透過使用 Requests 庫向 URL 傳送 GET 請求並存儲響應物件來從網頁提取標題。然後對網頁的 HTML 內容進行解碼並存儲在變數中。定義一個正則表示式模式以匹配網頁的 title 標籤。正則表示式模式的“search”方法用於在網頁的 HTML 內容中查詢模式的第一個匹配項。可以使用“group(1)”方法提取第一個匹配組的字串內容,並獲取網頁的標題。

示例

在下面的示例中,我們使用正則表示式提取網頁的標題。我們使用 Requests 庫向 URL 傳送 GET 請求,並將響應物件儲存在“response”變數中。

然後,我們使用“utf-8”編碼對網頁的 HTML 內容進行解碼,並將其儲存在“html_content”變數中。我們定義一個正則表示式模式以匹配網頁的 title 標籤。

我們使用正則表示式模式的“search”方法在網頁的 HTML 內容中查詢模式的第一個匹配項。我們使用“group(1)”方法提取第一個匹配組的字串內容,並將其儲存在“title”變數中。然後,我們將網頁的標題列印到控制檯。

import requests

url = 'https://www.wikipedia.org/'
response = requests.get(url)
html_content = response.content.decode('utf-8')

title_pattern = re.compile('(.+?) - 技術教學')
match = title_pattern.search(html_content)
title = match.group(1)

print(title)

輸出

Wikipedia

結論

在本文中,我們討論了使用 Python 中的 Requests 和 Beautiful Soup 庫從網頁提取標題的過程。Request 庫用於向網站 URL 傳送 HTTP 請求並獲取 HTML 內容作為響應。然後使用 Beautiful Soup 庫解析 HTML 內容並從 HTML 內容中提取所需的標題。

更新於: 2023年7月10日

4K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告