開始之前,先簡單解釋一下什麼是Web Scraping(網頁爬蟲)。網頁爬蟲是一種用於從網站自動提取數據的技術,它通常涉及以下幾個步驟:發送HTTP請求到目標網站,下載HTML或其他格式的網頁內容,解析內容以提取所需的數據,最後存儲或進一步處理提取的數據,網頁爬蟲可用於多種目的,例如收集價格信息進行比較,監控網站變更,收集足球數據,進行市場研究,建立搜索引擎索引等。
在本文中,我們將深入探討 BeautifulSoup 和 Requests。這些 Python 套件非常實用,是我在開始進行網頁抓取時主要使用的兩個套件。它們可以幫助你完成大部分工作,提取所需的資訊。
當然,還有其他更進階的套件可以使用,但由於本系列是針對初學者,因此我們將在未來的系列中探討其他擁有更進階功能的套件。
首先,我們將匯入這些套件。我們要從 BS4 模組中匯入 BeautifulSoup,並匯入 requests。執行後,如果你的環境中沒有安裝 BS4,你可能需要在終端機中輸入 "pip install BS4" 來安裝它。如果你使用 Anaconda 安裝的 Jupyter Notebook,則應該已包含 BS4,無需額外安裝。
接下來,我們需要指定要抓取的 HTML 網頁。開啟你要抓取的網頁,複製其 URL。將其賦予一個變數 "url",方便後續使用。
接下來,我們使用 requests.get(url) 發送一個 GET 請求到指定的 URL。GET 請求會返回一個 Response 物件。如果 Response 物件的狀態碼為 200,則表示請求成功。其他狀態碼,例如 204、400、401、404 都表示請求失敗。204 代表網頁沒有內容,400 代表請求錯誤,401 代表未經授權,404 代表網頁不存在。
接下來,我們要提取 HTML 內容。使用瀏覽器的開發者工具,可以查看網頁的 HTML 結構。我們要使用 BeautifulSoup 來解析 HTML 結構。
我們使用 BeautifulSoup(page.text, 'html.parser') 將解析後的 HTML 結構賦予變數 "soup"。 BeautifulSoup 會將 HTML 解析成一個樹狀結構,方便我們提取資訊。
執行後,你會看到解析後的 HTML 結構。可以通過 "print(soup)" 來查看解析後的結果。你會發現解析後的 HTML 結構比原始的 HTML 結構更容易閱讀和理解。BeautifulSoup 的創建者將其命名為 "soup" 的原因,是因為它將雜亂無章的 HTML 或 XML 結構變得如同美味的湯一樣易於處理。
我們可以通過 "print(soup.prettify())" 來格式化解析後的 HTML 結構,使其更易於閱讀。 prettify 功能在其他程式語言中也很常見。格式化後,你可以看到解析後的 HTML 結構形成了一個分層結構,更容易理解 HTML 元素之間的關係。
在下一次的文章中,我們將學習如何使用 BeautifulSoup 查詢解析後的 HTML 結構,提取特定的資訊,並深入了解 HTML 的運作原理,確保我們可以獲得所需的資訊。
如果你對解析後的 HTML 結構感到困惑,不要擔心,我們會在下一次的文章中會繼續學習更深入的內容。如果您覺得這篇Python網頁爬蟲教學有幫助,請給我們一個讚👍。您的支持是我們持續提供高質量技術內容的動力。
Коментарі