スポンサーリンク

PythonでTwitter(X)のツイートを取得する方法|ハッシュタグ検索も簡単に!

自動化スクリプト
  1. 1. はじめに|PythonでTwitterデータを取得してみよう
  2. 2. Twitter APIの利用準備
    1. 📝 ステップ1:Twitterの開発者アカウントを申請しよう
      1. ✅ 準備するもの
      2. ✅ 手順
    2. 📝 ステップ2:プロジェクトとアプリを作成する
      1. ✅ プロジェクト作成
      2. ✅ アプリ作成
    3. ✅ ワンポイント|無料枠でできることは?
  3. 3. ベアラートークンを環境変数に設定しよう
    1. 🔐 環境変数とは?
    2. 💻 Windowsでの設定方法(コマンドプロンプト)
    3. 🍎 Mac/Linuxでの設定方法(ターミナル)
    4. 🐍 Pythonコード側での読み込み方法
    5. ✅ 補足:毎回設定するのが面倒なときは?
  4. 4. Pythonコードでツイートを取得してみよう
    1. 🛠 使用するライブラリ
    2. 🌐 検索するURLを組み立てよう
    3. 🔐 ヘッダーにベアラートークンをセット
    4. 📥 実際にリクエストを送信してツイートを取得
    5. 🖨 JSON形式のデータをきれいに表示してみよう
    6. 🎉 出力例(簡略化)
  5. 5. よくあるエラーと対処法
    1. ❌ エラー①:401 Unauthorized(認証エラー)
      1. 💡 原因
      2. ✅ 対処法
    2. ❌ エラー②:403 Forbidden(アクセス拒否)
      1. 💡 原因
      2. ✅ 対処法
    3. ❌ エラー③:422 Unprocessable Entity(クエリに問題あり)
      1. 💡 原因
      2. ✅ 対処法
    4. ❌ エラー④:Too Many Requests(429)
      1. 💡 原因
      2. ✅ 対処法
    5. ❌ その他のエラー
      1. ✅ レスポンスコードが不明な場合
  6. 6. まとめ|APIでSNS活用の第一歩を踏み出そう
    1. 🧠 こんな応用もできる!
    2. 🚀 次にステップアップするなら?
    3. あわせて読みたい
  7. よくある質問(Q&A)
    1. 関連投稿:

1. はじめに|PythonでTwitterデータを取得してみよう

Twitter(現在のX)は、世の中のトレンドや人々の意見がリアルタイムで流れてくる、非常に情報量の多いSNSです。そんなTwitterの情報を、Pythonを使って自動的に取得できたら便利だと思いませんか?

たとえば――

  • 「#Python」のハッシュタグが付いた投稿を自動で収集したい
  • 最新の話題やトレンドを監視したい
  • SNSのテキストを使って自然言語処理を試してみたい

…そんなときに活躍するのが Twitter APIPythonのプログラミング です!

このページでは、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文字以上)

✅ 手順

  1. まずはTwitter Developer Platformにアクセスし、ログインします。
  2. 「Apply」や「Developer Portal」に進みます。
  3. 申請フォームで「利用目的(Use Case)」を英語で記入します。
    例: I want to fetch tweets with specific hashtags to analyze trends.
  4. 利用タイプは「Hobbyist(個人利用)」や「Student(学生)」を選びます。
  5. 規約に同意し、申請を送信すると、数分〜数時間で承認されることが多いです。

📝 ステップ2:プロジェクトとアプリを作成する

開発者アカウントが承認されたら、次はプロジェクトとアプリケーションの作成を行います。

✅ プロジェクト作成

  • 「Create Project」から始めましょう。
  • プロジェクト名や目的などを入力(例:MyTweetFetcher

✅ アプリ作成

  • プロジェクト内で「App(アプリ)」を作成します。
  • 作成が完了すると、以下の情報が発行されます:
項目用途
API Keyユーザー認証のためのキー(client ID的な役割)
API Secret KeyAPI 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~/.zshrcexport 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_TOKENset 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やデータ取得を活用したい方におすすめの記事を紹介します。今回の記事とあわせて読むことで、さらに知識とスキルが深まりますよ!

よくある質問(Q&A)

Q
Twitter 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の商品ページをご確認ください。

スポンサーリンク