2015/10/15更新

[Python] Python3でTwitterの検索APIを利用する

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
今日は、Python3でTwitter Developer APIを利用する方法をブログに書きたいと思います。Python2系で有名だったライブラリは使えないようで、Python3にはそれ用のライブラリがあります。

画像


準備1:Twitterにアプリ登録をする

TwitterのAPIを利用するためには、事前にTwitter Developersでアプリ登録をする必要があり、以下で登録することができます。

Twitter Application Manager

上記でアプリを登録したら以下の値を取得しておきます(後の実装で使います)。
  • Access Token
  • Access Token Secret
  • Consumer Key
  • Consumer Secret



準備2:Pythonライブラリをインストールする

Python3用のTwitterライブラリも幾つかありますが、sixohsix/twitter@Githubが有名なようなので、そちらを利用します。以下でインストールできます。
$ pip install --upgrade twitter



Twitterの検索APIを利用する

上記2つの準備が完了したら、Twitter APIを使うことができるようになります。具体的には以下のような実装を行います。
// secret.json
// OAuth2.0用のデータ
{
    "access_token": "your token",
    "access_token_secret": "your token secret",
    "consumer_key": "your consumer key",
    "consumer_secret": "your consumer secret"
}
# -*- coding: utf-8 -*-
#
# Library: 
#   https://github.com/sixohsix/twitter
#
# Twitter Search API
#   https://dev.twitter.com/rest/public/search
#   https://dev.twitter.com/rest/reference/get/search/tweets
#
# Twitter API Limits
#   450 queries per 15 minute for seach api
#   https://dev.twitter.com/rest/public/rate-limiting
# 
import json
from twitter import *

# OAuth2.0用のキーを取得する
with open("secret.json") as f:
    secretjson = json.load(f)

# Twitterへの接続
t = Twitter(auth=OAuth(secretjson["access_token"], secretjson["access_token_secret"], secretjson["consumer_key"], secretjson["consumer_secret"]))

# 検索する
apiresults = t.search.tweets(q="デザイン", lang="ja", result_type="recent", count=100)
print(len(apiresults["statuses"]))
print(apiresults)
このような感じで簡単に利用することができます。twitterモジュールの具体的な使い方や、検索のパラメータ詳細などは、後ろの参考サイトをご覧ください。
上記では認証情報をsecret.jsonにまとめています。外部ファイルにして.gitignoreに追加することで、他人に認証情報を公開する必要なく、プログラムは共有できるので便利です。上記で利用しているPythonのjsonモジュールの使い方は以前にブログを書いたのでそちらをご参照ください。



参考サイト

Python3でTwitter APIを使えるようになるまでに、以下のサイトを参照しました。

sixohsix/twitter | Github

Python3のTwitterのクライアント。具体的な使い方の詳細はREAMEに書いてあり、また各関数の詳細は、Twitter DevelopersのDocumentsを参照するようにとのこと。


Search | Twitter Developers

Twitterの検索APIの詳細が記載されたドキュメント。パラメータの説明やレスポンスのサンプルや説明が記載されています。


Rate limiting | Twitter Developers

Twitter APIの回数制限などの情報が記載されたページ。検索APIを上記のようなバッチ処理で利用する場合は、450回/15分の制限のようです。




最後に

今回はTwitter APIをPython3から利用する方法でした。ライブラリのおかげでかなり簡単に実装することができました(どっちかというと、充実のTwitter Develoersの資料を読むのが大変だった)。
次にTwitter APIを利用するときに、また調べそうだったのでブログに残した次第でした。他の方の参考になれば幸いです。

最後になりますが本ブログでは、フロントエンドのネタやPythonネタを中心に情報を発信しています。気になった方はぜひ、RSSTwitterをフォローして頂けますと幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。