iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
自我挑戰組

Python 爬蟲與資料分析實戰:從網路資料到資訊視覺化系列 第 9 篇

Day 9|BeautifulSoup 進階:使用 class、id 與 CSS Selector 精準擷取資料

  • 分享至 

  • xImage
  •  

昨天學習了 HTML 的基本結構,以及如何使用 BeautifulSoup 的 find() 和 find_all() 找出網頁中的標籤。今天繼續學習 HTML 的 class、id 和 CSS Selector,讓 Python 可以更精準地找到自己需要的資料。

在實際網站中,同一個網頁可能有很多個 div、p 或 h2 標籤,如果只靠標籤名稱搜尋,很容易抓到不需要的內容。因此,今天我使用 Google Colab 建立商品 HTML,練習從不同的商品區塊中擷取名稱、價格、評分和分類。

首先,我先建立一個包含三個商品的 HTML,並使用 BeautifulSoup 解析。

接著,我使用 select(".product") 找出所有商品區塊,並透過 len() 確認成功找到三個商品。

接下來,我練習使用 select_one() 從每個商品區塊中取得名稱、價格、評分和分類,再把資料整理成 Dictionary,最後放進 List 中。

在這個過程中,我也練習將價格轉換成 int,將評分轉換成 float,因為之後如果要進行數值比較或資料分析,就不能一直把這些資料當成字串使用。

完成資料擷取後,我再把之前學過的 if 加進來,篩選出價格低於 2000 元的商品。執行後可以找到無線耳機和滑鼠這兩筆資料。

最後,我把整理好的商品資料輸出成 CSV,讓資料可以保存下來,之後也能繼續使用 Pandas 進行分析。

今天的練習讓我把前幾天學過的內容真正串在一起,從 HTML 解析、CSS Selector 搜尋、資料型態轉換,到 Dictionary、List、條件判斷和 CSV 儲存,都在同一個實作中使用到了。

我也更清楚 class 和 id 的用途,以及為什麼爬蟲需要先找到正確的 HTML 區塊,再從裡面擷取需要的欄位,而不是直接把整個網頁的文字全部抓下來。

目前已經可以完成一個簡單的商品資料擷取流程。接下來會繼續練習把 Requests 和 BeautifulSoup 結合,並逐步加入更完整的資料整理與儲存功能,讓這次的自主學習慢慢發展成一個可以實際運作的爬蟲專案。


上一篇
Day 8|HTML 網頁結構與 BeautifulSoup:開始解析網頁資料
下一篇
Day 10|Python 爬蟲實戰:使用 Requests 與 BeautifulSoup 抓取書籍資料
系列文
Python 爬蟲與資料分析實戰:從網路資料到資訊視覺化 共 13 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言