2025 年用 Python 從 Twitter 抓取推文的完整指南

最後更新於 October 21, 2025

如果你曾經想追蹤 Twitter(現在叫「X」)上的熱門話題,你一定體會過那種像在消防水管下喝水的感覺——畢竟這個平台每天湧現超過 。對企業、研究人員,或任何想掌握全球即時對話的人來說,Twitter 數據就是一座金礦。但來到 2025 年,想抓取推文早已不像以前那麼輕鬆。Twitter API 開始收費、網站防禦機制越來越強,和爬蟲的攻防戰也愈演愈烈,想拿到你要的資料,真的像在數位叢林裡闖關。 twitter1 (1).png 還好,Python 依然是抓取推文的萬用神器——只要你懂得選對工具、避開最新限制。這篇教學會帶你用 Python(還有 Thunderbit 幫忙)一步步抓取 Twitter 推文,分享最新繞過限制的招式,還會教你怎麼把原始推文數據變成真正有價值的商業洞察。

用 Python 從 Twitter 抓取推文是什麼意思?

簡單說,用 Python 抓取 Twitter 推文,就是用程式自動把推文的內容、作者、時間、按讚數、轉推數等資料撈下來,讓你能在 Twitter 以外的地方自由分析。你可以把它想像成打造一個專屬的 Twitter 儀表板,想怎麼切、怎麼分析、怎麼視覺化都隨你。

主要有兩種方式:

  • API 抓取: 透過 Twitter 官方 API(像 Tweepy 套件),直接從 Twitter 伺服器拿到結構化資料。這方法穩定又官方,但限制多、2025 年起收費也不便宜。
  • 網頁爬蟲: 用 Snscrape 或瀏覽器自動化工具,直接從 Twitter 公開網頁撈資料,不用 API 金鑰。這能繞過部分限制,但比較容易失效,要隨時追蹤 Twitter 的變動。

你能抓到的常見欄位有:

  • 推文內容
  • 推文 ID 和網址
  • 發布時間(日期和時間)
  • 用戶名稱和個人資料
  • 互動數據(按讚、轉推、回覆、瀏覽次數)
  • Hashtag 和提及
  • 媒體連結(圖片、影片)
  • 對話脈絡(像回覆、串文)

基本上,只要你在 Twitter 網頁上看得到的資訊,理論上都能被抓下來——至少目前還行。

為什麼要抓取 Twitter 推文?企業常見應用場景

那為什麼要這麼費工?因為 Twitter 是全世界討論一切的地方——你的品牌、競爭對手、最新趨勢,甚至爆紅的貓咪影片。2025 年,很多團隊都這樣用抓下來的 Twitter 數據:

應用場景受益部門抓取資料商業價值
品牌監控公關、客服、行銷提及、情緒、回覆即時回饋、危機預警、提升客戶互動
競爭對手分析產品、業務競品推文、互動數據搶先掌握對手動向、產品發表或客戶痛點
活動成效追蹤行銷Hashtag 推文、KOLROI 追蹤、找出影響者、優化活動策略
潛在客戶開發業務購買意圖推文、用戶資料建立潛在名單、加速成交流程
市場調查策略、產品趨勢推文、意見以數據驅動產品開發與市場定位

至於投資報酬率?。如果你沒在關注 Twitter 上關於品牌或產業的討論,就等於錯過了即時、可行的情報。 twitter2 (1).png

Python 抓取 Twitter 推文的各種方法總覽

Python 生態系有很多抓取 Twitter 的工具,但自從 API 政策變動、反爬蟲升級後,並不是每種方法都還適用。2025 年主流選項比較如下:

方法易用性資料存取與限制維護難度成本
Twitter API (Tweepy)中等官方、但有限制高($100+/月)
Python 爬蟲 (Snscrape)開發者易上手廣泛、免 API 金鑰中(常需修正)免費(代理另計)
自訂網頁爬蟲困難看到的都能抓非常高低(時間成本)
Thunderbit(AI 網頁爬蟲)非常簡單(免寫程式)網頁上可見皆可抓低(AI 自動適應)免費+付費方案

下面就來一一解析。

Python 套件實戰:Tweepy、Snscrape 等

Tweepy 適合用來 API 抓取。它穩定、文件齊全,能拿到結構化推文資料——前提是你願意付費。2025 年,,要抓完整歷史資料還得申請企業或學術方案。

Snscrape 則是開源社群的最愛:不用 API 金鑰、不用付費,純 Python 就能抓 Twitter 公開網頁資料。適合抓歷史推文、大量數據,或想避開 API 限制時用。缺點是 Twitter 反爬蟲機制常常變,Snscrape 可能幾週就失效一次,要隨時更新和排錯。

其他像 Twint 這類工具因為維護問題已經不推薦,2025 年主流還是 Tweepy 和 Snscrape。

網頁爬蟲抓取 Twitter:什麼時候該用?

有時候,API 或 Snscrape 抓不到你要的資料——像串文所有回覆、用戶追蹤名單等。這時就得自己寫爬蟲,用 requests、BeautifulSoup 或瀏覽器自動化(Selenium/Playwright)來抓。不過要注意:Twitter 的反機器人措施超級嚴格,你得處理登入、動態內容、Token 輪換、網站結構變動等問題,維護成本很高。

對大多數人來說,直接用現成工具(像 Snscrape 或 Thunderbit)會更省事,除非你真的很愛半夜 Debug 爬蟲。

Thunderbit:最快速的 Twitter 網頁數據抓取方案

是我 2025 年抓 Twitter 的秘密武器——特別適合想要快速拿到結果、又不想寫程式的人。Thunderbit 的優勢有:

  • 兩步驟自動抓取: 只要打開你想抓的 Twitter 頁面,點「AI 建議欄位」,Thunderbit AI 會自動判斷要抓哪些資料(內容、作者、日期、按讚等),再按「開始抓取」就好。
  • 支援無限捲動和子頁面: Thunderbit 會自動捲動載入更多推文,還能進入每則推文頁面抓回覆或細節。
  • 免寫程式、低維護: AI 會自動適應 Twitter 版面變動,完全不用手動調整爬蟲。
  • 結構化匯出: 可以直接匯出到 Excel、Google Sheets、Airtable 或 Notion。
  • 雲端爬蟲: 大量抓取時,Thunderbit 可在雲端同時處理 50 個頁面,不用一直開著瀏覽器。
  • AI 數據增強: 抓取時可用 AI 提示自動增加欄位(像情緒、主題標籤等)。

Thunderbit 超適合商業用戶、分析師,或任何想把 Twitter 數據變成洞察的人——而且完全不用煩惱技術細節。

實作教學:2025 年用 Python 抓取 Twitter 推文

準備動手了嗎?以下是 2025 年抓取推文的詳細步驟:

步驟 1:設定 Python 環境

先確認你用的是 Python 3.8 以上版本,並安裝需要的套件:

1pip install tweepy snscrape pandas

如果要進階分析或視覺化:

1pip install matplotlib textblob wordcloud

用 Tweepy 的話,還要申請 Twitter API 憑證(Bearer Token);Snscrape 則不用金鑰。

步驟 2:用 Tweepy(API)抓取推文

a. 取得 API 憑證

註冊 ,選擇付費 API 方案(Basic 每月 $100/1 萬則),拿到 Bearer Token。

b. 驗證並搜尋推文

1import tweepy
2client = tweepy.Client(bearer_token="YOUR_BEARER_TOKEN")
3query = "AcmeCorp -is:retweet lang:en"
4response = client.search_recent_tweets(
5    query=query,
6    tweet_fields=["created_at", "public_metrics", "author_id"],
7    max_results=100
8)
9tweets = response.data
10for tweet in tweets:
11    print(tweet.text, tweet.public_metrics)
  • 限制: 只能抓最近 7 天的推文,除非有學術或企業授權。
  • 分頁:response.meta['next_token'] 拿更多結果。
  • 速率限制: 如果遇到 429 錯誤,要等配額重置。

步驟 3:用 Snscrape(免 API)抓取推文

a. 基本用法

1import snscrape.modules.twitter as sntwitter
2import pandas as pd
3query = "AcmeCorp since:2025-10-01 until:2025-10-31"
4tweets_list = []
5for i, tweet in enumerate(sntwitter.TwitterSearchScraper(query).get_items()):
6    tweets_list.append([
7        tweet.id, tweet.date, tweet.user.username, tweet.content,
8        tweet.replyCount, tweet.retweetCount, tweet.likeCount
9    ])
10    if i >= 999:  # 限制 1000 則
11        break
12df = pd.DataFrame(tweets_list, columns=[
13    "TweetID", "Date", "Username", "Text", "Replies", "Retweets", "Likes"
14])
15print(df.head())
  • 免 API 金鑰、無 7 天限制,可抓歷史推文。
  • 限制: 如果 Snscrape 因 Twitter 變動失效,請更新套件(pip install --upgrade snscrape)或查

b. 依用戶或 Hashtag 抓取

1# 抓 @elonmusk 所有推文
2scraper = sntwitter.TwitterUserScraper("elonmusk")
3# 抓 #WorldCup 所有推文
4scraper = sntwitter.TwitterHashtagScraper("WorldCup")

步驟 4:應對 Twitter 反爬蟲限制

Twitter 對爬蟲很不友善,請注意:

  • 速率限制: 降低請求頻率(在迴圈裡加 time.sleep()),或把查詢拆小。
  • IP 封鎖: 避免用雲端伺服器抓,大量抓取建議用住宅代理。
  • Guest Token 問題: 如果 Snscrape 拿不到 guest token,請更新套件或用瀏覽器 session cookie。
  • 頁面結構變動: Twitter 改版時要及時調整程式或換工具。
  • 法律/道德: 只抓公開資料、尊重速率限制、遵守 Twitter 條款。

如果你發現修爬蟲的時間比分析數據還多,不妨考慮用維護良好的工具或直接用 Thunderbit。

步驟 5:用 Thunderbit 抓取 Twitter 網頁數據

有時候你只想要資料——不想寫程式、不想煩惱。用 就能輕鬆搞定:

  1. 安裝 並登入。
  2. 前往你想抓的 Twitter 頁面(個人檔案、搜尋、Hashtag、回覆等)。
  3. 點擊 Thunderbit 圖示,選「AI 建議欄位」,AI 會自動推薦欄位(內容、作者、日期、按讚等)。
  4. 按下「開始抓取」,Thunderbit 會自動捲動、收集推文並顯示於表格。
  5. (選用)抓取子頁面: 勾選推文後點「抓取子頁面」可收集回覆或串文細節。
  6. 匯出資料 到 Excel、Google Sheets、Notion 或 Airtable,免費且無限制。
  7. 可排程定期抓取,方便長期監控趨勢或品牌提及。

Thunderbit 的 AI 會自動適應 Twitter 變動,讓你省下大量時間,非常適合商業用戶與分析師。

用 Python 分析與視覺化抓取的推文數據

抓到推文後,接下來就是數據變洞察。常見流程如下:

1. 載入資料到 pandas

1import pandas as pd
2df = pd.read_csv("tweets.csv")  # 如果從 Thunderbit 匯出為 .xlsx 也可以

2. 清理與預處理

1df['Date'] = pd.to_datetime(df['Date'])
2df['CleanText'] = df['Text'].str.replace(r'http\S+', '', regex=True)

3. 分析 Hashtag

1from collections import Counter
2hashtags = Counter()
3for text in df['Text']:
4    hashtags.update(part[1:] for part in text.split() if part.startswith('#'))
5print(hashtags.most_common(10))

4. 推文頻率圖表

1import matplotlib.pyplot as plt
2df.set_index('Date', inplace=True)
3tweets_per_day = df['Text'].resample('D').count()
4tweets_per_day.plot(kind='line', title='每日推文數')
5plt.show()

5. 情緒分析

1from textblob import TextBlob
2df['Polarity'] = df['CleanText'].apply(lambda x: TextBlob(x).sentiment.polarity)
3df['SentimentLabel'] = pd.cut(df['Polarity'], bins=[-1, -0.1, 0.1, 1], labels=['負面','中性','正面'])
4print(df['SentimentLabel'].value_counts())

6. 視覺化熱門 Hashtag

1top10 = hashtags.most_common(10)
2labels, counts = zip(*top10)
3plt.barh(labels, counts)
4plt.xlabel("數量")
5plt.title("前 10 大 Hashtag")
6plt.show()

你可以追蹤互動、找出影響者、監控情緒,甚至幫團隊打造即時儀表板。

從抓取到商業價值:讓 Twitter 數據產生洞察

抓取推文只是起點,真正的價值在於怎麼運用這些數據:

  • 品牌監控: 設定負面情緒警示,及早回應避免公關危機。
  • 競爭對手追蹤: 及時掌握對手產品發表或客訴,調整策略。
  • 趨勢偵測: 搶先發現新話題,讓品牌成為領導者。
  • 潛在客戶開發: 找出有購買意圖的推文,主動接觸潛在客戶。
  • 活動成效追蹤: 追蹤 Hashtag 使用與互動,衡量 ROI、優化未來活動。

透過 Thunderbit 等工具,還能定期自動抓取,直接推送到 Google Sheets 或 Airtable,輕鬆打造即時儀表板或自動化流程。

結論與重點整理

2025 年用 Python 抓取 Twitter 推文雖然挑戰多,但只要選對工具和策略,依然可行而且更有價值。重點如下:

  • Python 仍是推文抓取首選, 但要根據需求選對工具——API(Tweepy)穩定、Snscrape 彈性高、Thunderbit 最快最簡單。
  • Twitter 防禦嚴密, 請隨時更新工具、善用代理、並負責任地抓取。
  • Thunderbit 對非技術用戶來說是革命性工具, 兩步驟抓取、AI 結構化、匯出無縫。
  • 真正的價值在於分析—— 善用 pandas、matplotlib、AI,將原始推文轉化為可行的商業洞察。
  • 務必遵守 Twitter 條款與用戶隱私, 合法、合規地使用數據。

想體驗抓取有多簡單?,或瀏覽 了解更多教學。

祝你抓取順利,推文數據永遠新鮮、結構化、充滿洞察!

常見問答

1. 用 Python 抓取 Twitter 推文是否合法?
抓取公開推文用於分析通常是允許的,但必須遵守 Twitter 服務條款與隱私政策。請勿抓取私人資料、避免對伺服器造成過大負擔,並負責任地使用數據,尤其是公開或分享時。

2. Tweepy 與 Snscrape 抓取推文有何不同?
Tweepy 透過官方 API,穩定但有限制且需付費。Snscrape 則直接抓取公開網頁資料,彈性高但需隨時維護,因 Twitter 網站常變動。

3. 如何避免抓取 Twitter 被封鎖?
降低請求頻率(加延遲)、避免用雲端伺服器(建議用住宅 IP)、不要一次抓太多。若遇速率限制或被封,請暫停一段時間再試。

4. Thunderbit 能抓取回覆、串文或用戶名單嗎?
可以!Thunderbit 的子頁面抓取功能可收集回覆、串文細節,甚至追蹤名單——只要勾選資料列並點「抓取子頁面」,即可輕鬆取得結構化數據。

5. 如何分析與視覺化抓取的推文數據?
將資料載入 pandas,清理預處理後,可用 matplotlib、seaborn、wordcloud 等套件視覺化。情緒分析可用 TextBlob 或 VADER。Thunderbit 也能直接匯出到 Excel、Google Sheets、Airtable,方便整合分析流程。

想學更多網頁爬蟲、數據分析或自動化工作流程?歡迎瀏覽 或訂閱 觀看實作教學與技巧。

延伸閱讀

免費體驗 AI Twitter 網頁爬蟲
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
從 Twitter 抓取推文爬蟲推文TwitterPython
目錄

立即體驗 Thunderbit

兩步驟快速擷取名單與各類資料。AI 智能驅動。

取得 Thunderbit 免費體驗
用 AI 擷取資料
輕鬆同步資料到 Google Sheets、Airtable 或 Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week