1. はじめに|PythonでTwitterデータを取得してみよう
Twitter(現在のX)は、世の中のトレンドや人々の意見がリアルタイムで流れてくる、非常に情報量の多いSNSです。そんなTwitterの情報を、Pythonを使って自動的に取得できたら便利だと思いませんか?
たとえば――
- 「#Python」のハッシュタグが付いた投稿を自動で収集したい
- 最新の話題やトレンドを監視したい
- SNSのテキストを使って自然言語処理を試してみたい
…そんなときに活躍するのが Twitter API と Pythonのプログラミング です!
このページでは、Python初心者の方でもTwitterのツイートを自動取得できるようになるまで、一歩ずつ丁寧に解説していきます。
特に今回は「特定のハッシュタグが付いたツイートを取得する方法」にフォーカスしながら、
- Twitter開発者アカウントの登録方法
- APIキーやベアラートークンの取得
- セキュアな環境変数の設定方法
- 実際のPythonコードと実行結果の確認
…といった流れで解説していきます。
Pythonの基本的な書き方がわかる方なら、今日からでも始められる内容です。
Web APIの仕組みに触れつつ、ちょっとしたデータ収集自動化を体験してみましょう!
2. Twitter APIの利用準備
PythonからTwitter(X)のツイートを取得するには、まずTwitterが提供する**API(Application Programming Interface)**を使えるようにする必要があります。
そのために最初に行うのが「開発者アカウントの登録とAPIキーの取得」です。ここでは、Twitter APIの利用を始めるために必要な準備を順を追って解説していきます。
📝 ステップ1:Twitterの開発者アカウントを申請しよう
✅ 準備するもの
- 通常のTwitterアカウント(すでに持っていればOK)
- 使用目的(英語で20文字以上)
✅ 手順
- まずはTwitter Developer Platformにアクセスし、ログインします。
- 「Apply」や「Developer Portal」に進みます。
- 申請フォームで「利用目的(Use Case)」を英語で記入します。
例:I want to fetch tweets with specific hashtags to analyze trends. - 利用タイプは「Hobbyist(個人利用)」や「Student(学生)」を選びます。
- 規約に同意し、申請を送信すると、数分〜数時間で承認されることが多いです。
📝 ステップ2:プロジェクトとアプリを作成する
開発者アカウントが承認されたら、次はプロジェクトとアプリケーションの作成を行います。
✅ プロジェクト作成
- 「Create Project」から始めましょう。
- プロジェクト名や目的などを入力(例:
MyTweetFetcher)
✅ アプリ作成
- プロジェクト内で「App(アプリ)」を作成します。
- 作成が完了すると、以下の情報が発行されます:
| 項目 | 用途 |
|---|---|
| API Key | ユーザー認証のためのキー(client ID的な役割) |
| API Secret Key | API Keyの秘密鍵(client secret) |
| Bearer Token | 実際にAPIリクエストを送る際に使うトークン |
🔒 これらは非常に重要な情報です。他人と共有したり、SNSにアップしないよう注意しましょう。
✅ ワンポイント|無料枠でできることは?
Twitter APIには有料プランもありますが、個人や学習用であれば無料枠(Free Tier)でも十分使えます。
ただし、Free Tierでは以下のような制限があります:
| 項目 | 内容 |
|---|---|
| ツイート取得回数の上限 | 15分間に最大180リクエストまで |
| 取得できるツイートの範囲 | 直近7日間のツイートのみ |

こうした制限の中でも、リアルタイムのハッシュタグ監視やトレンドの収集には十分活用できます。
3. ベアラートークンを環境変数に設定しよう
Twitter APIからツイートを取得するには、「ベアラートークン(Bearer Token)」と呼ばれる認証情報をPythonコードから使う必要があります。
でも、このトークンを直接コードに書いてしまうのはNGです!
たとえば、こんなふうに書くのはとても危険です👇
headers = {
"Authorization": "Bearer ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"
}
このようにコードにトークンを直接書くと、うっかりGitHubにアップロードしてしまったり、他の人に見られたりして不正利用されるリスクがあります。
そこでおすすめなのが、**環境変数(Environment Variable)**を使う方法です。
🔐 環境変数とは?
環境変数とは、パソコンの中に一時的に保存される設定情報のことです。
Pythonからこの変数を読み込めば、コードに書かずにトークンを使うことができます。
💻 Windowsでの設定方法(コマンドプロンプト)
set BEARER_TOKEN=ここに取得したトークンを貼る
一時的に設定されるので、その同じコマンドプロンプト上でPythonスクリプトを実行してください。
🍎 Mac/Linuxでの設定方法(ターミナル)
export BEARER_TOKEN=ここに取得したトークンを貼る
こちらも同じく、そのターミナルでスクリプトを実行します。
🐍 Pythonコード側での読み込み方法
import os
BEARER_TOKEN = os.environ.get("BEARER_TOKEN")
このようにすれば、環境変数に設定されたトークンを安全に使うことができます。
もしトークンが取得できなかった場合は、Noneが返ってくるので、エラーメッセージを出すようにするとより安全です👇
if BEARER_TOKEN is None:
raise ValueError("ベアラートークンが環境変数に設定されていません。")
✅ 補足:毎回設定するのが面倒なときは?
- Mac/Linuxの場合は、
~/.bash_profileや~/.zshrcにexport BEARER_TOKEN=...を追記すれば毎回設定されます。 - Windowsの場合は、システムの環境変数に登録すれば、再起動後も維持されます。
4. Pythonコードでツイートを取得してみよう
ここまでで、Twitter APIの準備と環境変数の設定ができましたね。
いよいよ本番、Pythonで実際にツイートを取得してみましょう!
今回は、「#Python」というハッシュタグが付いたツイートを10件取得するサンプルを使って説明します。
🛠 使用するライブラリ
まず、今回のスクリプトで使う主なライブラリはこちら:
import os
import requests
import urllib.parse
import json
🔧 requestsがインストールされていない場合は、以下でインストールしておきましょう:
pip install requests
🌐 検索するURLを組み立てよう
Twitter API v2では、**「Tweets Search recent」**エンドポイントを使って、過去7日以内のツイートを取得できます。
query = "#Python -is:retweet" # ハッシュタグ付き&リツイート除外
encoded_query = urllib.parse.quote(query) # URLエンコード
url = f"https://api.twitter.com/2/tweets/search/recent?query={encoded_query}&max_results=10"
🔐 ヘッダーにベアラートークンをセット
BEARER_TOKEN = os.environ.get("BEARER_TOKEN")
if BEARER_TOKEN is None:
raise ValueError("環境変数 'BEARER_TOKEN' が設定されていません。")
headers = {
"Authorization": f"Bearer {BEARER_TOKEN}"
}
📥 実際にリクエストを送信してツイートを取得
response = requests.get(url, headers=headers)
if response.status_code != 200:
raise Exception(f"エラー発生: {response.status_code} - {response.text}")
tweets = response.json()
🖨 JSON形式のデータをきれいに表示してみよう
print(json.dumps(tweets, indent=2, ensure_ascii=False))
これで、最新の「#Python」が付いたツイート10件の内容が、Pythonの辞書形式で見やすく整形表示されます。
🎉 出力例(簡略化)
{
"data": [
{
"id": "1234567890",
"text": "PythonでAPI使ってみた! #Python"
},
{
"id": "1234567891",
"text": "今日はPythonの勉強を進めました。 #Python"
}
]
}

このように、ツイートの本文やIDなどの情報が取得できます。
テキストデータとして保存したり、分析に使ったりと活用の幅は広がります!
5. よくあるエラーと対処法
Twitter APIをPythonで扱っていると、エラーが出てしまうことがあります。
でも大丈夫。よくあるエラーはパターンが決まっているので、原因を知っておけばすぐに対処できます。
ここでは、実際によくあるエラーとその解決策をわかりやすくまとめて紹介します。
❌ エラー①:401 Unauthorized(認証エラー)
💡 原因
- ベアラートークンが設定されていない、または間違っている
- ヘッダーの書き方が間違っている
✅ 対処法
- 環境変数が正しく設定されているか確認(
echo $BEARER_TOKENやset BEARER_TOKEN) - Pythonで
os.environ.get("BEARER_TOKEN")を使って、値がNoneになっていないかチェック - ヘッダーの記述を確認:
headers = {
"Authorization": f"Bearer {BEARER_TOKEN}"
}
❌ エラー②:403 Forbidden(アクセス拒否)
💡 原因
- Twitter APIのアクセス権限(スコープ)が足りない
- 無料プランでは使えないエンドポイントを利用している
✅ 対処法
- 「Freeプラン」では、使えるAPIに制限があるので注意(特に古いツイートの検索や詳細情報の取得)
- Twitter Developer Portal にログインして、アクセス権限を確認
❌ エラー③:422 Unprocessable Entity(クエリに問題あり)
💡 原因
- クエリに不正な文字や構文ミスがある
- URLエンコードを忘れている
✅ 対処法
urllib.parse.quote()でクエリを必ずエンコードしてからURLに含める
query = "#Python -is:retweet"
encoded_query = urllib.parse.quote(query)
❌ エラー④:Too Many Requests(429)
💡 原因
- APIの利用回数上限を超えた(無料プランは15分間で180リクエスト)
✅ 対処法
- 少し待ってから再試行する
- 短時間で繰り返し実行しないよう、
time.sleep()を使ってリクエスト間隔を調整
import time
time.sleep(3) # 3秒待つ
❌ その他のエラー
✅ レスポンスコードが不明な場合
print(response.status_code)
print(response.text)
これで、どんなエラーが起きているのか原因を特定しやすくなります。
6. まとめ|APIでSNS活用の第一歩を踏み出そう
ここまで読んでくださってありがとうございます!
この記事では、Pythonを使ってTwitter(X)のツイートを取得する方法を、初心者にもわかりやすくステップ形式で紹介してきました。
おさらいすると、以下の流れで実装しましたね:
🔹 Twitter開発者アカウントの申請
🔹 APIキー・ベアラートークンの取得
🔹 セキュリティを意識した環境変数の設定
🔹 Pythonコードでのツイート取得&表示
たったこれだけで、Twitterのデータを自動で取得して活用できる力が手に入りました。
しかもこの仕組みは、#Python に限らず、どんなハッシュタグやキーワードでも応用OK!
🧠 こんな応用もできる!
- 話題のハッシュタグを定期収集して、トレンド分析
- 企業やブランドに関する投稿をモニタリング
- 自然言語処理(NLP)で感情分析や単語頻度の可視化
- 機械学習と組み合わせてツイート分類・予測も!
Web APIの基本を押さえておくと、他のSNS(YouTube、Instagramなど)でも同じ考え方でデータ取得ができるようになります。
🚀 次にステップアップするなら?
もしさらに発展させたい場合は、以下のようなテーマに挑戦してみるのもおすすめです。
- 取得したツイートをCSVやExcelに保存
- ツイート内容を自然言語処理ライブラリ(MeCab・spaCyなど)で分析
- 定期実行して毎日更新のレポートを自動作成

PythonでAPIを扱えるようになると、**「ネット上の情報を自分の手で自由に集めて分析する力」**が手に入ります。
今回の記事が、あなたの最初の一歩になればうれしいです!
あわせて読みたい
PythonでAPIやデータ取得を活用したい方におすすめの記事を紹介します。今回の記事とあわせて読むことで、さらに知識とスキルが深まりますよ!
- 🔗 Pythonで仮想通貨の価格をリアルタイム取得&グラフ表示する方法【Coincheck API】
→ APIでデータ取得し、リアルタイムグラフで可視化する実践例! - 🔗 Pythonで為替レートを自動取得してExcelに保存する方法【初心者向け】
→ Web APIの扱い方とExcel出力の基本をマスターできます。 - 🔗 【Python入門】jsonモジュールの使い方|JSONの読み書きと変換をやさしく解説!
→ 今回取得したツイートデータ(JSON形式)の扱い方をより深く理解できます。
よくある質問(Q&A)
- QTwitter APIの利用にお金はかかりますか?
- A
Twitter APIには無料枠があります。ハッシュタグ検索やツイート取得など基本的な機能は、無料プラン(Free Tier)で利用可能です。ただし、取得件数や機能に制限があるため、頻繁なアクセスや詳細なデータ分析をしたい場合は有料プランの検討も必要です。
- Qなぜベアラートークンを環境変数で管理する必要があるの?
- A
セキュリティのためです。ソースコードに直接書くと、SNSやGitHubなどでうっかり公開してしまうリスクがあります。環境変数を使えば、認証情報をコード外で安全に管理できます。
- Qツイートの中から特定の単語を含むものだけを取得できますか?
- A
はい、可能です。クエリの部分で複数のキーワードや条件を組み合わせることができます。
例:"Python tutorial lang:ja -is:retweet"とすると、「Python tutorial」を含む日本語ツイートのみ取得できます。







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。