Scrapy Python 教學:網頁爬蟲實戰指南

最後更新於 June 16, 2025

還記得我第一次想從電商網站抓商品資料的時候,手邊只有 Python、一杯咖啡,還有一個想做 Amazon 價格追蹤器的夢。結果沒想到,原本以為的小專案,最後卻變成一堆複雜的 XPath 選擇器、分頁處理的麻煩,還有數不清的 debug。只要你有用程式碼處理過網頁資料,應該都懂那種又期待又挫折的感覺——「怎麼會搞這麼複雜?」

其實現在,網頁爬蟲早就不是資料科學家或工程師的專利。無論你是業務、電商經理、行銷人員,還是任何想把網路資訊變成商業洞察的人,都會需要這項技能。根據 ,而且還在持續成長。雖然 Python 和 Scrapy 這類框架依然是大規模、客製化爬蟲的首選,但對新手來說,入門門檻真的不低。所以這篇教學我會用 Amazon 的實際案例,帶你一步步認識 Scrapy——同時也會介紹一個更簡單、完全不用寫程式的 AI 工具:

什麼是 Scrapy Python?你的網頁爬蟲神隊友

先從基礎開始。Scrapy 是一套專門為網頁爬取和資料擷取設計的開源 Python 框架。你可以把它想像成一個超強工具箱,讓你打造自訂的「蜘蛛」(Scrapy 對爬蟲的稱呼),自動瀏覽網站、追蹤連結、處理分頁,還能大規模擷取結構化資料。

那 Scrapy 跟 Python 的 requestsBeautifulSoup 有什麼差別?這兩個函式庫適合做簡單、一次性的抓取,但 Scrapy 則是為大規模、複雜專案設計的,像是:

  • 抓取上千頁(例如整個電商商品目錄)
  • 自動追蹤連結、處理分頁
  • 非同步處理資料,速度超快
  • 可重複、結構化地清理與匯出資料

簡單說,Scrapy 就像網頁爬蟲界的瑞士刀——功能強大又彈性高,但對新手來說也有點嚇人。

為什麼選 Scrapy Python 來做網頁爬蟲?

那為什麼開發者和資料團隊都愛用 Scrapy?這裡幫你整理幾個重點:

應用場景Scrapy 優勢商業價值
價格監控處理分頁、非同步請求、可排程及時掌握競爭對手動態、彈性調整價格
商品目錄擷取追蹤連結、擷取結構化資料建立商品資料庫、支援數據分析
競品分析可擴展、對網站變動有韌性追蹤趨勢、新品、庫存狀態
市場調查模組化資料清理/轉換流程匯總評論、情感分析

Scrapy 的非同步引擎(基於 Twisted)可以同時抓很多頁,速度又快又能擴展。它的模組化設計讓你能自訂邏輯(像是代理、User-Agent、資料清理等)。而Pipeline 則能讓你彈性處理、驗證、匯出資料——不管是 CSV、JSON 還是資料庫都沒問題。

如果你本來就會 Python,Scrapy 絕對是超強工具。但說真的,對一般商業用戶來說,學習曲線不算友善。

Scrapy 1.jpeg

Scrapy Python 環境安裝與設定

準備動手實作了嗎?以下是 Scrapy 的安裝步驟:

1. 安裝 Scrapy

先確認你已經安裝 Python 3.9 以上版本。然後在終端機輸入:

pip install scrapy

檢查安裝是否成功:

scrapy version

如果你用的是 Windows 或 Anaconda,建議建立虛擬環境,避免相依性衝突。Scrapy 支援 Windows、macOS、Linux。

2. 建立 Scrapy 專案

我們來建立一個叫 amazonscraper 的新專案:

scrapy startproject amazonscraper

你會看到這樣的資料夾結構:

amazonscraper/
├── scrapy.cfg
├── amazonscraper/
│   ├── __init__.py
│   ├── items.py
│   ├── pipelines.py
│   ├── middlewares.py
│   ├── settings.py
│   └── spiders/

這些檔案的用途:

  • scrapy.cfg:專案設定(通常不用動)
  • items.py:定義資料模型(像商品名稱、價格等)
  • pipelines.py:資料清理、驗證、匯出
  • middlewares.py:進階設定(如代理、標頭)
  • settings.py:調整 Scrapy 行為(如併發數、延遲等)
  • spiders/:實際爬蟲邏輯

如果你已經覺得有點複雜,別擔心,這裡就是很多非工程師會卡住的地方。

打造 Python 爬蟲:用 Scrapy 擷取 Amazon 商品資料

我們用 Amazon 搜尋結果做個實戰範例。(提醒:Amazon 不允許爬蟲,且有嚴格的反爬措施,僅供學習參考!)

1. 建立 Spider

spiders/ 資料夾下建立 amazon_spider.py

import scrapy

class AmazonSpider(scrapy.Spider):
    name = "amazon_example"
    allowed_domains = ["amazon.com"]
    start_urls = ["https://www.amazon.com/s?k=smartphones"]

    def parse(self, response):
        products = response.xpath("//div[@data-component-type='s-search-result']")
        for product in products:
            yield {
                'name': product.xpath(".//span[@class='a-size-medium a-color-base a-text-normal']/text()").get(),
                'price': product.xpath(".//span[@class='a-price-whole']/text()").get(),
                'rating': product.xpath(".//span[@aria-label]/text()").get()
            }
        next_page = response.xpath("//li[@class='a-last']/a/@href").get()
        if next_page:
            yield scrapy.Request(url=response.urljoin(next_page), callback=self.parse)

這段程式碼做了什麼?

  • 從 Amazon 搜尋「smartphones」的頁面開始
  • 用 XPath 擷取每個商品的名稱、價格、評分
  • 找到「下一頁」連結,自動翻頁繼續抓

2. 執行爬蟲

在專案根目錄下執行:

scrapy crawl amazon_example -o products.json

Scrapy 會自動爬所有搜尋結果頁,並把資料存成 JSON 檔。

處理分頁與動態內容

Scrapy 內建分頁與連結追蹤功能,非常強大。但如果遇到 JavaScript 動態載入的內容(像無限滾動、彈窗評論),Scrapy 只能看到靜態 HTML。這時就要結合 Selenium 或 Splash 等工具,這又是另一個進階主題了。

用 Scrapy Python 處理與匯出資料

資料抓下來後,通常還要清理和匯出:

  • Pipeline:在 pipelines.py 裡寫 Python 類別,進行資料清理、驗證、轉換(像價格轉數字、刪除不完整資料、甚至串接翻譯 API)
  • 匯出:Scrapy 可直接用 -o 參數匯出 CSV、JSON、XML。要匯出到 Google Sheets 等,則需額外寫程式或用第三方套件。

想做情感分析或自動翻譯?就得自己串接外部 API 或 Python 函式庫,Scrapy 並沒有內建這些功能。

隱藏的成本:Scrapy Python 對商業用戶的挑戰

老實說,Scrapy 雖然很強,但對非技術背景的用戶並不友善。常見的困難有:

  • 學習曲線超陡:你得懂 Python、HTML、XPath/CSS 選擇器、Scrapy 專案結構,光是上手就可能花好幾天
  • 安裝與環境問題:Python 安裝、相依性管理、錯誤排查都很麻煩,尤其在 Windows 上
  • 沒有視覺化介面:一切都靠寫程式,不能直接點選網頁元素
  • 維護負擔大:網站一改版,爬蟲就壞了,得自己修
  • 沒有內建 AI 功能:想翻譯、摘要、情感分析都要自己寫額外程式

Scrapy 2.jpeg

快速比較如下:

挑戰Scrapy (Python)商業用戶需求
需要寫程式最好不用寫程式
設定時間幾小時到幾天幾分鐘內完成
維護持續(網站變動就要修)最低維護成本
資料匯出CSV/JSON(需手動整合)直接匯出到 Excel/Sheets/Notion
AI 功能無(需自行串接)內建翻譯/情感分析

如果你是行銷、業務、營運人員,Scrapy 可能就像用大砲打小鳥,太大材小用了。

Thunderbit:Scrapy Python 的無程式碼替代方案

這時候, 就超級實用。以我多年自動化工具開發經驗來說,大多數商業用戶其實根本不想寫程式——他們只想快點拿到資料。

Thunderbit 是一款人工智慧網頁爬蟲,以 Chrome 擴充功能形式提供。專為不懂程式的用戶設計,能夠:

  • 幾個點擊就能從任何網站抓資料
  • 用自然語言描述需求(像「商品名稱、價格、評分」)
  • 自動處理分頁與子頁面
  • 一鍵匯出到 Excel、Google Sheets、Airtable、Notion
  • 即時翻譯、摘要、情感分析

完全不需要 Python、不用選擇器、也不用擔心維護。

Thunderbit 就是為追求效率的商業用戶設計,讓 AI 幫你搞定所有繁瑣細節。

Thunderbit vs. Scrapy Python:功能對比

直接來個對照表:

比較項目Scrapy (Python)Thunderbit (AI 工具)
所需技能Python、HTML、選擇器無需技術背景,點選+自然語言
安裝/設定時間幾小時(安裝、寫程式、除錯)幾分鐘(安裝 Chrome 擴充、登入)
資料結構化手動定義 items、pipelineAI 自動辨識欄位、建議欄位
分頁/子頁面需寫程式一鍵啟用,AI 自動處理
翻譯需自寫程式或串接 API內建,直接切換「翻譯」
情感分析需外部函式庫/API內建,新增「情感」欄位即可
匯出選項CSV/JSON(需手動匯入 Sheets/Excel)一鍵匯出到 Excel、Google Sheets、Airtable、Notion
維護網站變動需手動修正AI 可自動適應小幅變動
規模適合大規模、長期專案適合快速任務、中小規模(數百/數千筆)
成本免費(但需投入大量人力)免費方案+付費(起價 $9/月,省下大量時間與精力)

什麼時候該選 Scrapy Python,什麼時候該用 Thunderbit?

我的建議如下:

  • 適合用 Scrapy 的情境:
    • 你是開發者或有工程團隊
    • 需要抓上萬頁、建立長期自動化流程
    • 網站結構複雜、需高度自訂邏輯
    • 你想完全掌控(不怕維護)
  • 適合用 Thunderbit 的情境:
    • 你不會寫程式(或不想寫)
    • 需要快速取得資料,無論是一次性還是定期任務
    • 需要內建翻譯、情感分析、資料增強
    • 重視速度與彈性勝過極致自訂

Scrapy 3.jpeg

決策流程簡單如下:

  1. 你會寫 Python 嗎?
    • 會 → Scrapy 或 Thunderbit(快速任務)
    • 不會 → Thunderbit
  2. 你的專案規模大且需長期維運嗎?
    • 是 → Scrapy
    • 否 → Thunderbit
  3. 需要翻譯或情感分析嗎?
    • 需要 → Thunderbit
    • 不需要 → 兩者皆可

實戰:用 Thunderbit 無程式碼抓取 Amazon 商品資料

我們再用 Amazon 做一次示範——這次用最簡單的方法。

1. 安裝 Thunderbit

  • 註冊帳號(有免費方案)

2. 前往 Amazon 搜尋商品

  • 打開 ,搜尋「laptops」或其他商品

3. 啟動 Thunderbit

  • 點擊瀏覽器上的 Thunderbit 圖示
  • 側邊欄會自動辨識 Amazon 頁面

4. 使用 AI 建議欄位

  • 點選 「AI 建議欄位」
  • Thunderbit AI 會自動掃描頁面,建議「商品名稱」、「價格」、「評分」、「評論數」等欄位
  • 你可自行增減欄位(像「商品連結」、「Prime 資格」等,直接輸入即可)

5. 啟用分頁與子頁面抓取

  • 開啟 分頁:Thunderbit 會自動點擊「下一頁」,抓取所有頁面
  • 開啟 子頁面抓取:Thunderbit 會進入每個商品詳情頁,擷取更多資訊(如描述、ASIN 編號等)

6. 開始抓取

  • 點選 開始抓取
  • Thunderbit 會即時收集資料,逐頁顯示進度

7. 翻譯與情感分析(選用)

  • 想翻譯商品描述?只要在該欄位開啟「翻譯」
  • 想分析評論情感?新增「情感」欄位,Thunderbit AI 會自動填入

8. 匯出資料

  • 點選 匯出
  • 選擇 Excel、Google Sheets、Airtable 或 Notion
  • 資料馬上可用,完全不用手動匯入或處理 CSV

9. 設定定期自動抓取(選用)

  • 可設定排程(像每天早上 8 點)
  • Thunderbit 會自動執行爬蟲並更新指定目的地

就這麼簡單。完全不用寫程式、不用選擇器、不用維護。資料隨時都能用。

加碼小技巧:讓你的網頁爬蟲專案更高效

不管你用 Scrapy、Thunderbit 還是其他工具,這裡有幾個實戰心得:

  • 驗證資料品質:隨時檢查有沒有遺漏或異常值(像價格為 $0、名稱空白等)
  • 遵守規範:確認網站服務條款、尊重 robots.txt,避免過度頻繁抓取
  • 自動化要適度:用排程保持資料新鮮,但不要太頻繁
  • 善用免費工具:Thunderbit 內建免費郵箱、電話、圖片擷取器,超適合開發名單或內容整理
  • 資料組織有助分析:直接匯出到 Sheets/Excel,方便後續篩選、樞紐分析、視覺化

更多技巧可以參考

更多技巧可以參考

結語:網頁爬蟲不再困難——選對工具才是王道

總結來說:**Scrapy 對開發者來說是超強武器,但對多數商業用戶來說真的太複雜。**如果你熟悉 Python、需要打造大型、客製化爬蟲,Scrapy 很適合。但如果你想快速取得資料、免寫程式,還想要內建翻譯與情感分析, 絕對是更輕鬆的選擇。

我親眼見證 Thunderbit 幫非技術團隊省下大量時間和精力。從「我想要這些資料」到「資料已經在我的表格裡」,只要幾分鐘,不用等上好幾天。AI 建議欄位、子頁面抓取、一鍵匯出等功能,讓你輕鬆把網路變成商業洞察。

下次需要抓商品資料、監控價格、建立名單時,問問自己:你想寫 Python,還是想直接拿到結果?不妨試試 Thunderbit 免費方案,體驗網頁爬蟲的全新簡單。

想了解更多?歡迎造訪 ,或深入閱讀 的網頁爬蟲實戰教學。

延伸閱讀:

免責聲明:請務必遵守網站條款與當地法規進行網頁爬蟲。如有疑慮,請諮詢法律專業人士——沒有人想因為一份表格收到律師函。

作者:Shuai Guan,Thunderbit 共同創辦人兼執行長。多年深耕 SaaS、自動化與 AI 領域,讓你少走彎路。

試用人工智慧網頁爬蟲
Shuai Guan
Shuai Guan
Co-founder/CEO @ Thunderbit. Passionate about cross section of AI and Automation. He's a big advocate of automation and loves making it more accessible to everyone. Beyond tech, he channels his creativity through a passion for photography, capturing stories one picture at a time.
Topics
Scrapy PythonPython 爬蟲Scrapy 教學
立即體驗 Thunderbit
用人工智慧輕鬆抓取網頁資料,零門檻、零負擔。
提供免費方案
支援繁體中文
目錄
用 AI 擷取資料
輕鬆將資料匯入 Google Sheets、Airtable 或 Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week