トランプTruth SocialをPythonでスクレイピングする方法2026
Truth Socialのアーキテクチャとアクセス方法の概要
Truth SocialはオープンソースのMastodon(マストドン)をベースに構築されたソーシャルメディアプラットフォームです。このことは開発者にとって大きなアドバンテージを意味します。Mastodonは標準的なREST APIとRSSフィードを提供しているため、Truth Socialでも同様のインターフェースが使えるからです。2026年現在、主に三つのアクセス手段があります。
第一の方法はRSSフィードです。https://truthsocial.com/@realDonaldTrump.rss にアクセスすると、最新20件の投稿がRSS 2.0形式で取得できます。認証不要で最も実装が簡単ですが、ポーリング間隔に制約があり、速報性は限られます。第二の方法はMastodon互換APIです。https://truthsocial.com/api/v1/ 以下のエンドポイントを使用します。公開投稿の取得は認証なしでも可能です。第三の方法はPlaywright等を使ったブラウザ自動化です。JavaScriptレンダリング後のDOMを直接操作できますが、サーバーへの負荷が高くなります。
本記事では実用性と倫理的配慮のバランスを取り、主にRSSとMastodon APIを使った方法を中心に解説します。スクレイピングを実施する際は常に対象サービスの利用規約を確認し、サーバーに過度な負荷をかけないよう配慮することが重要です。
Python環境のセットアップ
まず必要なPythonライブラリをインストールします。仮想環境(venv)を使うことでシステムのPython環境を汚染せずに済みます。必要なライブラリは feedparser(RSSパース)、requests(HTTP通信)、python-telegram-bot(Telegram通知)、schedule(定期実行)、sqlite3(標準ライブラリ、データ保存用)です。
RSSフィードを使った基本的な実装コードは以下のロジックに基づいています。feedparser.parse(rss_url) でフィードを取得し、entries リストを反復して各投稿の title(投稿テキスト)と published(投稿時刻)を抽出します。既に処理済みの投稿IDをSQLiteに保存しておき、新しい投稿だけをTelegramに送信します。このループを schedule ライブラリで30秒ごとに実行します。
Mastodon APIを直接叩く場合は、エンドポイント https://truthsocial.com/api/v1/accounts/107780257626128497/statuses にGETリクエストを送ります。パラメータ limit=20 で最新20件が取得できます。レスポンスはJSON配列で、各オブジェクトの content(HTML形式)・created_at・id が主要フィールドです。HTMLタグの除去には BeautifulSoup または正規表現を使います。
Playwrightを使ったリアルタイムモニタリング
RSSやAPIでは取得できない情報(リプライ・引用投稿・メディア添付など)が必要な場合、またはより低レイテンシが求められる場合は、Playwrightによるブラウザ自動化が選択肢になります。Playwrightは非同期処理に対応しており、async/await 構文でクリーンなコードが書けます。
基本的なフローは次のとおりです。async_playwright でChromiumを起動し、トランプのプロフィールページに移動します。page.wait_for_selector で投稿要素の読み込みを待ち、page.query_selector_all で投稿リストを取得します。page.on('response', handle_response) でネットワークレスポンスをフックし、/api/v1/timelines/ パターンのAPIレスポンスを直接キャプチャするとさらに効率的です。
ただしPlaywrightはメモリ消費が大きく(1プロセスあたり200〜400MB程度)、クラウドVPS上での長時間運用には注意が必要です。ヘッドレスモード(headless=True)を使用し、メモリ不足でプロセスが落ちた場合の自動再起動ロジックも実装しておくことを推奨します。
取得データの構造化と保存
投稿データを単に通知するだけでなく、構造化して保存することで後から分析に使えます。SQLiteは設定不要で使えるため小規模プロジェクトに最適です。テーブル設計として、投稿ID・投稿テキスト・投稿時刻(UTC)・取得時刻・キーワードタグ(カンマ区切り)・市場影響フラグのカラムを持つシンプルな構造を推奨します。
キーワード自動タグ付けのロジックでは、投稿テキストに特定のワードが含まれる場合にカテゴリを付与します。例えば「tariff」「関税」「trade」が含まれる場合は「TARIFF」タグ、「China」「中国」が含まれる場合は「CHINA」タグ、「stock」「market」「Wall Street」が含まれる場合は「MARKET」タグといった具合です。このタグを使ってフィルタリングすることで、市場に影響しやすい投稿を素早く識別できます。
蓄積したデータはpandasとmatplotlibを使って可視化できます。投稿時刻とその後の価格変動(Yahoo Finance APIから取得)を照合することで、自分なりのバックテストデータが構築できます。このデータはトレーディング戦略の精度向上に直接役立ちます。
実運用での注意点と倫理的考慮
スクレイピングを実運用する際には技術的な問題だけでなく、法的・倫理的な側面も考慮が必要です。まずサーバー負荷の問題です。30秒以上のポーリング間隔を守り、同一IPからの短時間大量リクエストを避けてください。Truth Socialのサーバーに過度な負荷をかけることは利用規約違反になる可能性があります。
IPブロックへの対処として、長期間安定して動作させるには一つのIPアドレスから節度あるアクセスを心がけることが重要です。クラウドVPS(さくらのVPS・ConoHa VPS・Vultr・Linode等)を使えば固定IPで安定動作させられます。日本のさくらのVPS(月643円〜)やConoHa VPS(月税込880円〜)は日本語サポートがあり初心者にも扱いやすいです。
データ取り扱いの観点では、取得した投稿データは個人的な分析・研究目的に限定し、第三者への大量配信や商業利用は避けることを強く推奨します。Truth Socialの利用規約の変更に定期的に目を通し、コンプライアンスを維持することも重要です。TrumpBotは合法的なAPIアクセスを通じてデータを提供しており、リアルタイム監視ページからアラートを利用することも選択肢の一つです。
| 手法 | 取得速度 | 実装難易度 | 主なライブラリ | 推奨用途 |
|---|---|---|---|---|
| RSSフィード | 1〜5分 | 低 | feedparser | 入門・アラート |
| Mastodon API | 30秒〜2分 | 中 | requests, json | 標準監視 |
| Playwright | 10〜30秒 | 高 | playwright, asyncio | 高速監視 |
| WebSocket(将来) | 準リアルタイム | 高 | websockets | 超低遅延 |
よくある質問
Truth SocialのスクレイピングはToS違反ですか?
Truth Socialの利用規約は自動スクレイピングを制限しています。個人的な情報収集や研究目的でRSS・公開APIを利用するのは一般的に許容範囲とされますが、商業目的での大量取得は利用規約違反になる可能性があります。必ず最新の利用規約を確認してください。
PlaywrightとSeleniumどちらが良いですか?
Truth Socialのような動的サイトにはPlaywrightが推奨されます。非同期処理が得意でChromium/Firefox/WebKitに対応しており、JavaScriptレンダリング後のコンテンツも確実に取得できます。Seleniumより安定していてメンテナンスも容易です。
Truth SocialのMastodon APIエンドポイントは何ですか?
主なエンドポイントは https://truthsocial.com/api/v1/accounts/107780257626128497/statuses です。公開投稿は認証なしで取得できます。レート制限に注意し、30秒以上の間隔を空けてアクセスしてください。
スクレイピングにVPSは必要ですか?
24時間連続監視するにはVPSが必要です。さくらのVPS・ConoHa・Vultrなど月500〜1,500円のプランで十分動作します。ローカルPCでも動きますが電源を切ると止まります。
レート制限を回避する方法はありますか?
ポーリング間隔を30秒以上に設定し、同一IPからの過剰リクエストを避けることが最善です。プロキシローテーションは利用規約違反になる可能性があるため推奨しません。節度あるアクセスが長期安定運用の鍵です。
取得したデータをデータベースに保存できますか?
はい。SQLiteやPostgreSQLを使ってタイムスタンプ・投稿テキスト・エンゲージメント数を保存し、過去の投稿と市場反応を分析するデータセットを構築できます。Pandasとの連携も容易です。
投稿の感情分析も同時に行えますか?
OpenAI APIやHugging Faceの感情分析モデルをパイプラインに組み込むことで、取得と同時に市場センチメントのスコアを付与できます。キーワードベースの簡易分類から始めるのが現実的です。
Pythonの知識がなくても使えるツールはありますか?
TrumpBotのダッシュボードはコードなしでTruth Social投稿をリアルタイム表示します。ノーコードでRSSアラートを設定したい場合はIFTTTやZapierが利用できます。これらで始めてから必要に応じてPythonを学ぶのも良いアプローチです。