使用 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 內容中提取所需的標題。