很多公司卡在同一個地方:想要的資料明明攤在公開網頁上,卻沒有「匯出」按鈕,只能靠人一列一列複製。網頁爬取這幾年從工程師的專屬技能,變成業務、營運、行銷都在碰的能力,原因就在這裡。市場數字也撐得住這個轉向:超過 65% 的企業 會用網頁爬蟲工具與擷取到的資料來推動 AI 專案,替代資料市場規模也逼近 50 億美元。

要自己動手,Python 是門檻最低的一條路:語法好讀、函式庫齊全,寫出來的東西比較像一位不會喊累的助理,幫你把網頁上的欄位搬進試算表。這份指南會把基本觀念、能派上用場的商業場景,以及一份可以照著跑的範例流程講清楚,最後也會談到 Thunderbit 這類不用寫程式的替代方案。
用 Python 做網頁爬取,到底在做什麼
網頁爬取講白了就是把「人在瀏覽器上看得到的資訊」自動抓成結構化資料。想比對競品價格、想把徵才頁上的職缺整理成清單,與其一筆一筆手動貼(貼到第三十筆通常就想放棄),不如寫一段程式讓它自己跑完。
Python 之所以成為預設選項,關鍵在生態系夠成熟:從發送請求、解析 HTML 到資料清理,每一段都有現成的函式庫接手。實務上也是如此,接近 70% 的網頁爬取從業者都使用 Python。
入門階段會反覆用到的,其實只有兩個核心函式庫:
- Requests:負責跟網站「溝通」,把頁面的 HTML 抓下來。
- BeautifulSoup:負責在 HTML 裡「尋寶」,找出並擷取你要的資料。
如果你曾經從網站複製資訊貼到 Excel,那就是最原始版本的爬取,Python 只是把同一件事變成可規模化、不會中途分心的流程。
為什麼值得學:企業實際用在哪
Python 網頁爬取不是拿來炫技的玩具,它解決的是很具體的資料取得問題。企業最常見的幾種用法整理如下:
| 應用場景 | 目標網站 | 商業效益 |
|---|---|---|
| 價格監控 | Amazon、Walmart、競品網站 | 維持競爭力、自動化定價、掌握促銷活動 |
| 潛在客戶開發 | LinkedIn、YellowPages、Google Maps | 建立名單、推動開發外聯、減少對昂貴資料供應商的依賴 |
| 競品產品追蹤 | SaaS 功能頁、電商網站 | 追蹤新功能、庫存或價格變化 |
| 職缺市場分析 | Indeed、LinkedIn Jobs、企業網站 | 掌握招募趨勢、調整徵才策略 |
| 房地產研究 | Zillow、Realtor.com、Craigslist | 找出投資機會、追蹤價格趨勢 |
| 內容彙整 | 新聞網站、部落格、論壇 | 監測趨勢、蒐集評論、自動化研究流程 |
這些場景的共通點是「時效」:把蒐集流程自動化的團隊,能更早看到價格變動與競品動作,也能把人力挪去做判斷而不是複製貼上。73.5% 的資料領先企業管理者 在各項決策上都依賴網路資料,理由大致相同。
動手前要先裝的三個函式庫
-
Requests:發送 HTTP 請求、取回網頁內容,可以理解成一個寫成程式碼的瀏覽器。
安裝方式:pip install requests -
BeautifulSoup:解析 HTML 與 XML 文件,讓你用標籤和 class 精準定位資料。
安裝方式:pip install beautifulsoup4 -
Selenium(選用):直接操控真實瀏覽器,適合資料靠 JavaScript 動態載入的網站,例如無限捲動、點開才顯示的內容。
安裝方式:pip install selenium(另外還需要像 ChromeDriver 這樣的瀏覽器驅動程式。)
第一個練習專案不用想太多,Requests 加 BeautifulSoup 就足以應付大多數靜態頁面。
先看懂 HTML,再決定要抓什麼
程式能不能抓到資料,取決於你有沒有先找到資料的位置。網站是用 HTML 搭起來的,本質上是由 <div>、<p>、<a> 等元素組成的樹狀結構。
常用標籤先記這幾個:
<h1>, <h2>, ... <h6>:標題(通常代表頁面主題)<p>:段落(描述、評論)<a>:連結(含href屬性)<ul>,- `:清單(搜尋結果、功能列表)
<table>,<tr>,<td>:表格(資料欄位)<div>,<span>:通用容器(通常搭配class或id屬性)
實務做法: 在頁面上按右鍵選「檢查元素」,滑鼠移到目標資料上,瀏覽器就會標出對應的標籤與 class。以商品頁為例,價格常常長這樣:<p class="price_color">£51.77</p>,這串 class 名稱就是程式裡要鎖定的目標。
實作教學:一步一步抓下一筆資料
以下用練習專用的 Books to Scrape 網站示範,目標是抓出一本書的標題、價格和評分。
第 1 步:把環境準備好
先確認電腦上有 Python 3,可到 python.org 下載。編輯器建議用 VS Code 或 PyCharm,先拿記事本頂著也行。
打開終端機安裝函式庫:
pip install requests beautifulsoup4
建立一個叫做 web_scraper.py 的新檔案,先把函式庫匯入:
import requests
from bs4 import BeautifulSoup
第 2 步:發送 HTTP 請求取回頁面
第一件事是把頁面抓下來:
url = "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"
response = requests.get(url)
print(response.status_code) # 如果成功,應該會印出 200
看到 200 就代表請求成功,整份 HTML 已經放在 response.text 裡。
第 3 步:用 BeautifulSoup 解析 HTML
接著把這串字串交給解析器,Python 才有辦法按標籤查詢:
soup = BeautifulSoup(response.content, 'html.parser')
第 4 步:擷取並整理資料
標題、價格、評分各抓一次:
title = soup.find('h1').text
price = soup.find('p', class_='price_color').text
rating_element = soup.find('p', class_='star-rating')
rating_classes = rating_element.get('class')
rating = rating_classes[1] # 例如 "Three"
價格抓下來是字串,先轉成數字才方便後續運算:
price_num = float(price.lstrip('£')) # "£51.77" -> 51.77
真實網站上欄位缺漏是常態,多加一層判斷可以避免整支程式中斷:
price_element = soup.find('p', class_='price_color')
price = price_element.text.strip() if price_element else "N/A"
第 5 步:存成 CSV 或 Excel
最直接的做法是寫成 CSV:
import csv
data = [title, price, rating]
with open('book_data.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(["Title", "Price", "Rating"])
writer.writerow(data)
資料量再大一點、之後還要做分析,改用 pandas 會順手很多:
import pandas as pd
df = pd.DataFrame([{"Title": title, "Price": price, "Rating": rating}])
df.to_csv('book_data.csv', index=False)
把 book_data.csv 用 Excel 或 Google Sheets 打開,資料就能直接進到你的分析流程。
這些資料實際能換到什麼
以下幾種用法的投資報酬最容易被看見:
- 電商價格監控:零售商每天抓一輪競品價格,據此調整自家定價 (scrapingdog.com)。
- 潛在客戶開發:業務團隊從名錄或 Google Maps 蒐集名單,省下數千美元的資料供應商費用 (scrapingdog.com)。
- 競爭情報:產品團隊盯著競品官網的功能更新與價格調整。
- 職缺市場分析:HR 從求職網站觀察招募趨勢與薪資水準 (scrapfly.io)。
- 房地產研究:投資人從 Zillow 或 Craigslist 擷取物件列表,比對區域價格走勢。
判斷標準很單純:只要一份資料有價值、又沒有匯出功能,爬取就是最省事的補位方式。
怎麼降低被封鎖的機率
網站對機器人的容忍度差異很大,下面幾個習慣可以明顯減少被擋下來的次數:
- 控制請求頻率:每次請求之間加上
time.sleep(1),節奏接近真人瀏覽。 - 輪換代理伺服器:用代理池分散來源 IP 位址 (scrapingbee.com)。
- 帶上合理的 User-Agent:讓伺服器看到的是一般瀏覽器:
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/118.0.0.1 Safari/537.36"} requests.get(url, headers=headers) - 尊重 robots.txt:動手前先確認網站開放哪些路徑。
- 管理 Cookie 與標頭:用
requests.Session()保留 Cookie,必要時補上Referer、Accept-Language等標頭。 - 避開蜜罐陷阱:頁面上看不見卻存在的欄位與連結,多半就是專門用來辨識機器人的。
更完整的做法可以參考 Octoparse 的防封鎖指南。
Thunderbit:不用寫程式的另一條路
使用 AI 從任何網站抓取資料 Get Started Free
有些情況你要的只是那份資料,不想為了它安裝環境、除錯 selector、再處理網站改版。Thunderbit 的定位就在這一段。
它是一款給商務使用者設計的 AI 網頁爬蟲 Chrome 擴充功能,流程壓縮成這樣:
- AI 建議欄位:Thunderbit 會先掃過頁面,直接建議可擷取的欄位(像是「產品名稱」、「價格」、「評分」),不必自己讀 HTML 或寫 selector。
- 兩步完成爬取:先點「AI 建議欄位」,再點「爬取」,資料就會整理成表格。
- 支援子頁面與分頁:需要進到詳細頁補資料、或跨多頁擷取時,AI 會自動跟著連結與「下一頁」按鈕,最後合併成一份資料集。
- 立即匯出:資料可直接送到 Excel、Google Sheets、Airtable 或 Notion,省掉 CSV 編碼與格式的麻煩。
- 免維護:網站版面調整時 AI 會自行適應,不用回頭修壞掉的程式。
- 不需要寫程式:會用瀏覽器就會用。
想看更詳細的操作,可以參考 Thunderbit 的新手網頁爬取教學。
Python 與 Thunderbit 怎麼選
兩者的差別,攤開來看最清楚:
| 比較項目 | Python 網頁爬取 | Thunderbit |
|---|---|---|
| 安裝設定 | 安裝 Python、學會寫程式、除錯 HTML | 安裝 Chrome 擴充功能,點一下就開始 |
| 學習門檻 | 中等(需了解 Python 與 HTML 基礎) | 很低(介面操作,AI 直接建議欄位) |
| 彈性 | 幾乎無上限(可自訂邏輯、適用任何網站) | 適合多數常見網站;特殊情境會受限 |
| 維護成本 | 網站改版時需自行修正程式 | AI 會適應變動,使用者維護需求很低 |
| 擴充性 | 需要額外投入資源(執行緒、代理、伺服器) | 雲端爬取(一次 50 頁),擴充很容易 |
| 成本 | 免費(但需付出時間與代理成本) | 有免費方案,之後按使用量付費 |
| 最適合對象 | 開發者、自訂專案、系統整合 | 商務使用者、業務/營運、快速蒐集資料 |
這些情況選 Python:
- 你需要完全掌控流程、要寫自訂邏輯,或要跟其他軟體整合。
- 目標網站結構複雜或特殊。
- 你不排斥寫程式,也願意長期維護腳本。
這些情況選 Thunderbit:
- 你要的是速度,不想為了一次任務去做環境設定。
- 你是商務使用者,做業務、營運或行銷,沒有技術背景。
- 需求集中在清單、表格這類常見結構。
- 你不想把時間花在修腳本上。
不少團隊其實兩邊都用:臨時需求交給 Thunderbit,深度整合或客製化流程再回到 Python。
重點整理
探索更多網頁爬取指南 Get Started Free
不論是追價格、建名單,還是把重複的研究流程自動化,Python 網頁爬取的骨架都只有四步:
- 使用 Requests 抓取頁面。
- 用 BeautifulSoup 解析 HTML。
- 擷取並清理資料。
- 存成 CSV 或 Excel。
但這四步不見得非得自己走完。Thunderbit 這類工具讓完全不碰技術的同事,也能在幾次點擊內從幾乎任何網站取得資料,把「要是有這份資料就好了」到「資料已經在試算表裡」的距離壓到最短。
可以先做的三件事:
- 挑 Books to Scrape 這種練習網站,寫一支最小可用的 Python 爬蟲。
- 裝上 Thunderbit 的 Chrome 擴充功能,實測一次自己常看的網站要花多久。
- 想找更多做法,Thunderbit Blog 上有教學、技巧與商業案例。
資料乾淨、結構清楚、隨時可用,這三件事做到了,後面的分析才有意義。
免費試用 AI 網頁爬蟲 Get Started Free
常見問題
1. 用 Python 做網頁爬取合法嗎?
在規範內操作是合法的。動手前確認網站的服務條款與 robots.txt,並避開私人或敏感資料。
2. 新手最簡單的入門方式是什麼?
從 Python 的 Requests 和 BeautifulSoup 開始,挑一個結構單純的公開網站練手。完全不想寫程式的話,可以直接試 Thunderbit。
3. 怎麼避免爬取時被封鎖?
降低請求頻率、使用代理、輪換 User-Agent,並尊重 robots.txt。更多做法可參考 ScrapingBee 的指南。
4. Thunderbit 能處理動態網站或子頁面嗎?
可以。它的 AI 能跟隨連結、處理分頁,也能從子頁面或圖片中擷取資料。
5. 我的專案該選 Python 還是 Thunderbit?
會寫程式、又需要自訂邏輯,Python 比較合適;追求速度、簡單、少設定,Thunderbit 的效率更高。
6. 可以請 AI 程式代理幫我寫 Python 爬蟲嗎?
可以,而且這條路和本文最初撰寫時相比已經差很多。Claude Code、OpenAI Codex 這類 AI 程式代理,能依照自然語言描述(例如「把這個 URL 裡的書名、價格和星等評分抓下來,存成 CSV」)產生可執行的 requests + BeautifulSoup 程式。若目標網站大量依賴 JavaScript 或需要登入,Browser Use 這個開源函式庫可讓 AI 代理用自然語言操作真實瀏覽器;Firecrawl 則提供爬取 API 與 MCP 伺服器,方便接進代理工作流程。要注意的是,反機器人防護、robots.txt 與速率限制不會因此消失,AI 產生的程式一樣要遵守;它降低的是「我還不會 Python」這道門檻。
兩條路都試一輪,再決定哪一種比較貼近你的工作節奏。


