Twitter(現在の「X」)でトレンドを追った経験があるなら、流れてくる情報量に圧倒されたことが一度はあるはずです。1日に5億件を超えるツイートが投稿される世界は、消火栓に口をつけて水を飲むようなものです。ビジネスでもリサーチでも、世論をリアルタイムでつかみたい場面でも、twitterのデータはまさに鉱脈です。ただし2025年の今、ツイートのスクレイピングはかつてほど手軽ではありません。APIが有料化され、サイトの仕様は頻繁に変わり、スクレイパー対策も年々厳しく、生い茂った密林を切り拓くような作業になっています。
それでも、ツイート収集の道具としてPythonは依然として最有力です。ツール選びと最新の回避策さえ押さえれば十分に戦えます。本記事では、Python(とThunderbit)でtwitterのツイートをスクレイピングする手順、いまどきの対策、集めたデータをビジネスに結びつけるコツまでを順に解説します。
Pythonでtwitterのツイートをスクレイピングするとは、どういうことか
AIでTwitterデータを抽出 Get Started Free
要するに、Pythonでtwitterのツイートをスクレイピングするとは、ツイート本文・投稿者・日時・いいね数・リツイート数などを自動で集め、twitterの画面の外で自由に分析できる状態にすることです。自分専用のtwitterダッシュボードを組むイメージで、データを好きに加工・可視化できます。
主な手段は2つです。
- APIベースのスクレイピング:Tweepyなどのライブラリを介し、twitter公式API経由でデータを取得します。安定する半面、2025年時点では利用料が高く制限も多めです。
- ウェブスクレイピング:Snscrapeやブラウザ自動化ツールで、twitterの公開Webページから直接データを取り出します。APIキー不要で柔軟ですが、仕様変更に弱くこまめなメンテが要ります。
取得できる主なデータは次のとおりです。
- ツイート本文
- ツイートID・URL
- 投稿日時
- ユーザー名・プロフィール情報
- エンゲージメント(いいね、リツイート、リプライ、表示回数)
- ハッシュタグ・メンション
- メディアリンク(画像・動画)
- 会話の流れ(リプライやスレッド)
つまり、twitterの画面上で目に見えている情報は、ほぼ余さず取得できると考えてよいでしょう。
なぜtwitterのツイートをスクレイピングするのか:主なビジネス活用例
わざわざ手間をかけてツイートを集める意味はどこにあるのでしょうか。twitterは、世界中の人がブランド、競合、トレンド、ときにはバズった猫動画まで語り合う場です。2025年の今、企業やチームは次のようにtwitterデータを役立てています。
| 活用例 | 主な利用者 | 抽出データ | ビジネス効果 |
|---|---|---|---|
| ブランド監視 | PR、サポート、マーケティング | メンション、感情、リプライ | リアルタイムの顧客の声、危機管理、エンゲージメント強化 |
| 競合分析 | 商品企画、営業 | 競合のツイート、反応 | 競合の動向や新製品、顧客の不満を早期察知 |
| キャンペーン効果測定 | マーケティング | ハッシュタグ投稿、インフルエンサー | ROI測定、インフルエンサー特定、施策最適化 |
| リード獲得 | 営業 | 購買意欲のあるツイート、プロフィール | 見込み顧客リスト化、営業効率化 |
| 市場調査 | 戦略、商品開発 | トレンド投稿、意見 | データに基づく商品開発や市場ポジショニング |
実際、twitter広告主のROIは他のSNSより約40%高いという調査もあります。自社や業界の話題をリアルタイムで拾わないのは、かなり惜しい選択です。

Pythonでツイートをスクレイピングする主な手法を整理する
Pythonでtwitterのツイートを取るツールは数あれど、APIの仕様変更や対策強化で、2025年時点では選択肢がかなり絞られてきました。主な手法を並べると次のようになります。
| 方法 | 使いやすさ | データ取得・制限 | メンテナンス性 | コスト |
|---|---|---|---|---|
| Twitter API (Tweepy) | 普通 | 公式だが制限あり | 低 | 高額(月$100〜) |
| Pythonスクレイパー (Snscrape) | 開発者向けで簡単 | API不要で幅広く取得 | 中(頻繁に修正必要) | 無料(プロキシ代別) |
| カスタムWebスクレイピング | 難しい | 画面で見える全て | 非常に高い | 低(時間コスト) |
| Thunderbit (AIウェブスクレイパー) | 非常に簡単(ノーコード) | Web画面上の全データ | 低(AIが自動対応) | フリーミアム |
それぞれの中身を、もう少し掘り下げて見ていきましょう。
Pythonライブラリ活用:Tweepy、Snscrapeなど
Tweepyは、API経由のスクレイピングの定番です。動作が安定しドキュメントも充実していますが、2025年時点では最安プランでも月$100で1万件までと高めです。全アーカイブ取得にはさらに上位のプランが要ります。
Snscrapeは、APIなしで誰でも無料でtwitterの公開データを取れる人気ツールです。過去ツイートや大量データの収集に向く一方、twitterの仕様変更で動かなくなることも多く、頻繁なアップデートやトラブル対応が前提です。
Twintなど他のツールは更新が止まったものが目立ち、2025年時点ではTweepyとSnscrapeが主流です。
twitterのWebスクレイピング:必要になる場面と注意点
APIやSnscrapeでは取れないデータ(スレッド内の全リプライやフォロワー一覧など)が欲しいときは、requestsやBeautifulSoup、Selenium/Playwrightで自前のスクレイパーを組むことになります。とはいえtwitterのボット対策は厳格で、ログイン処理、トークン管理、動的コンテンツ対応、頻繁な仕様変更への追従が欠かせません。手間もリスクも大きいため、基本はSnscrapeやThunderbitのようなメンテ済みツールに頼るのが賢明です。
Thunderbit:twitterデータを最短で取得する方法
Thunderbitは、2025年のtwitterスクレイピングで最も手軽な選択肢です。コード不要で、誰でもすぐ使い始められます。
- 2クリックで抽出:対象のtwitterページを開いて「AIフィールド提案」をクリック。AIがツイート本文・投稿者・日時・いいね数などを自動で見分け、「スクレイピング」ボタンですぐデータが手に入ります。
- 無限スクロール・サブページ対応:自動でスクロールし、必要なら各ツイートの詳細やリプライも取得できます。
- ノーコード&低メンテ:AIがレイアウト変更に自動追従するため、煩わしい保守はほぼ不要です。
- 構造化エクスポート:Excel、Googleスプレッドシート、Airtable、Notionへワンクリックで書き出せます。
- クラウドスクレイピング:大量データも最大50ページを同時にクラウド処理。ブラウザを開きっぱなしにする必要はありません。
- AIデータ拡張:感情分析やトピック分類など、AIプロンプトでカスタム項目も追加できます。
ビジネス担当者でも、アナリストでも、非エンジニアでも、twitterデータをすぐ業務に活かせます。
実践ガイド:Pythonでtwitterのツイートをスクレイピングする手順
ここからは実際に手を動かしていきましょう。2025年版の進め方を紹介します。
ステップ1:Python環境の準備
Python 3.8以上を用意し、必要なライブラリを入れます。
pip install tweepy snscrape pandas
分析や可視化までやりたい場合は、次も追加します。
pip install matplotlib textblob wordcloud
Tweepyを使う場合はtwitter APIの認証情報(ベアラートークン)が必要です。SnscrapeはAPIキー不要です。
ステップ2:Tweepy(API経由)でツイートを取得
a. API認証情報の取得
Twitter開発者アカウントに登録し、有料APIプラン(Basicは月$100/1万件)へ加入します。そのうえでベアラートークンを取得します。
b. 認証&ツイート検索
import tweepy
client = tweepy.Client(bearer_token="YOUR_BEARER_TOKEN")
query = "AcmeCorp -is:retweet lang:en"
response = client.search_recent_tweets(
query=query,
tweet_fields=["created_at", "public_metrics", "author_id"],
max_results=100
)
tweets = response.data
for tweet in tweets:
print(tweet.text, tweet.public_metrics)
- 制限:直近7日分のみ取得可能(学術・エンタープライズプランは全期間対応)
- ページネーション:
response.meta['next_token']で追加取得 - レート制限:429エラー時は待機が必要
ステップ3:Snscrape(API不要)でツイートを取得
a. 基本的な使い方
import snscrape.modules.twitter as sntwitter
import pandas as pd
query = "AcmeCorp since:2025-10-01 until:2025-10-31"
tweets_list = []
for i, tweet in enumerate(sntwitter.TwitterSearchScraper(query).get_items()):
tweets_list.append([
tweet.id, tweet.date, tweet.user.username, tweet.content,
tweet.replyCount, tweet.retweetCount, tweet.likeCount
])
if i >= 999: # 1000件で打ち切り
break
df = pd.DataFrame(tweets_list, columns=[
"TweetID", "Date", "Username", "Text", "Replies", "Retweets", "Likes"
])
print(df.head())
- APIキー不要、7日制限なし、過去ツイートも取得OK
- 注意点:Snscrapeはtwitterの仕様変更で動かなくなることも。エラー時は
pip install --upgrade snscrapeでアップデート、またはGitHub Issuesをチェック。
b. ユーザーやハッシュタグ単位で取得
# @elonmuskの全ツイート
scraper = sntwitter.TwitterUserScraper("elonmusk")
# #WorldCupの全ツイート
scraper = sntwitter.TwitterHashtagScraper("WorldCup")
ステップ4:twitterのスクレイピング制限への対策
twitterはスクレイパー対策を強めているので、次の点に気を配りましょう。
- レート制限:リクエスト間に
time.sleep()で間隔を空ける、クエリを分割する - IPブロック:クラウドサーバーからの実行は避けて、規模が大きい場合は住宅用プロキシを使う
- ゲストトークン問題:Snscrapeで取得失敗時はパッケージをアップデート、またはブラウザのセッションクッキーを使う
- ページ構造の変化:twitterの仕様変更時はコード修正やツール切り替えが必要
- 法的・倫理的配慮:公開データのみ取得し、レート制限を守って、twitterの利用規約を守る
スクレイパーの修正に時間を取られるようなら、メンテ済みツールやThunderbitを併用するのも一手です。
ステップ5:Thunderbitでtwitterデータをノーコード取得
「とにかくデータが欲しい、コードは無理」という人にはThunderbitが最適です。
- Thunderbit Chrome拡張機能をインストールしてログイン
- 欲しいtwitterページ(プロフィール、検索、ハッシュタグ、リプライなど)を開く
- Thunderbitアイコンをクリックして「AIフィールド提案」を選択。AIがツイート本文・投稿者・日時・いいね数などを自動判別
- 「スクレイピング」ボタンを押す。自動でスクロールして、ツイートをテーブル表示
- (任意)サブページ取得:ツイートを選択して「サブページをスクレイピング」でリプライやスレッド詳細も収集
- Excel、Googleスプレッドシート、Notion、Airtableにエクスポート(無料・無制限)
- 定期スクレイピングもOK。トレンドやメンションの継続監視に便利
ThunderbitのAIはtwitterの仕様変更にも自動で追従します。ビジネスや分析の用途で、大幅な時短が見込めます。
Pythonで取得したツイートデータの分析・可視化
データが集まったら、次は分析です。基本的な流れを例示します。
1. pandasでデータを読み込み
import pandas as pd
df = pd.read_csv("tweets.csv") # Thunderbitからエクスポートした場合は.xlsxもOK
2. データの前処理・クレンジング
df['Date'] = pd.to_datetime(df['Date'])
df['CleanText'] = df['Text'].str.replace(r'http\S+', '', regex=True)
3. ハッシュタグ分析
from collections import Counter
hashtags = Counter()
for text in df['Text']:
hashtags.update(part[1:] for part in text.split() if part.startswith('#'))
print(hashtags.most_common(10))
4. ツイート頻度の可視化
import matplotlib.pyplot as plt
df.set_index('Date', inplace=True)
tweets_per_day = df['Text'].resample('D').count()
tweets_per_day.plot(kind='line', title='1日あたりのツイート数')
plt.show()
5. 感情分析
from textblob import TextBlob
df['Polarity'] = df['CleanText'].apply(lambda x: TextBlob(x).sentiment.polarity)
df['SentimentLabel'] = pd.cut(df['Polarity'], bins=[-1, -0.1, 0.1, 1], labels=['ネガティブ','ニュートラル','ポジティブ'])
print(df['SentimentLabel'].value_counts())
6. 人気ハッシュタグの可視化
top10 = hashtags.most_common(10)
labels, counts = zip(*top10)
plt.barh(labels, counts)
plt.xlabel("件数")
plt.title("人気ハッシュタグTOP10")
plt.show()
エンゲージメント分析、インフルエンサーの特定、感情トレンドの把握、ダッシュボード構築など、応用の幅は尽きません。
スクレイピングからビジネス価値へ:twitterデータの活かし方
2025年版おすすめTwitterスクレイパー6選 Get Started Free
ツイートを集めるのは出発点にすぎません。本当の価値は、そこから意思決定につなげるところにあります。
- ブランド監視:ネガティブな話題の急増を察知し、炎上前に手を打つ
- 競合モニタリング:競合の新製品や顧客の不満をリアルタイムで拾い、戦略を即調整する
- トレンド発見:新しい話題を誰よりも早くつかみ、自社を業界の先導役として打ち出す
- リード獲得:購買意欲の高いツイートを見つけ、タイミングよくアプローチする
- キャンペーン効果測定:ハッシュタグの広がりやエンゲージメントを追い、ROIを可視化する
Thunderbitなら、定期スクレイピングやGoogleスプレッドシート/Airtable連携も簡単です。ライブダッシュボードや自動化ワークフローも構築できます。
まとめ・ポイント
2025年のPythonによるtwitterのツイートスクレイピングは難易度こそ上がっていますが、適切なツールと戦略があれば十分に実現でき、得られるビジネス価値も大きいです。要点は次のとおりです。
- Pythonは今も最有力。安定性重視ならAPI(Tweepy)、柔軟性ならSnscrape、手軽さならThunderbit。
- twitterの対策は強力。ツールのアップデート、プロキシ利用、責任あるスクレイピングが欠かせません。
- Thunderbitは非エンジニアにも最適。2クリックで取得、AIによるデータ構造化、スムーズなエクスポート。
- 本当の価値は分析にあり。pandasやmatplotlib、AIを使って、生データをビジネスインサイトへ変換しましょう。
- twitterの規約とユーザーのプライバシーを尊重。倫理的にデータを活用してください。
スクレイピングの手軽さを体感したいなら、Thunderbitを無料でお試しください。ほかの活用法はThunderbitブログでも紹介しています。
みなさんのツイートデータが、いつも新鮮で構造化され、価値あるインサイトへつながりますように。
よくある質問(FAQ)
1. Pythonでtwitterのツイートをスクレイピングするのは合法ですか?
公開ツイートを分析目的で取得すること自体は一般的に問題ありませんが、twitterの利用規約やプライバシーポリシーは必ず守ってください。非公開データの取得や過度なアクセスは避け、責任を持って活用しましょう。
2. TweepyとSnscrapeはどう違いますか?
Tweepyはtwitter公式APIを使うため安定していますが、利用料が高く制限も多めです。SnscrapeはAPI不要で柔軟な反面、twitterの仕様変更でメンテが必要になります。
3. スクレイピングでブロックされないコツはありますか?
リクエスト間隔を空け(遅延を入れる)、クラウドサーバーからの実行を避け(住宅用IP推奨)、一度に大量取得しないことです。レート制限やブロックに遭ったら、時間を置いて再試行しましょう。
4. Thunderbitでリプライやスレッド、ユーザーリストも取得できますか?
できます。Thunderbitのサブページスクレイピング機能で、リプライやスレッド詳細、フォロワーリストなども構造化データとして手軽に取得できます。
5. 取得したツイートデータの分析・可視化はどうすればよいですか?
pandasでデータを読み込み、前処理のうえでmatplotlibやseaborn、wordcloudなどで可視化します。感情分析にはTextBlobやVADERが便利です。ThunderbitならExcelやGoogleスプレッドシート、Airtableへ直接エクスポートでき、分析ワークフローへすぐ組み込めます。
ウェブスクレイピングやデータ分析、自動化に関心があるなら、ThunderbitブログやYouTubeチャンネルもぜひご覧ください。
さらに詳しく
AI Twitterスクレイパーを無料で試す Get Started Free


