コードスニペット

はじめに

ここでは Tweepy を使うのに役立つコードスニペットを紹介します. 自由に自作のスニペットを共有したり, 改良してみてください.

OAuth 認証

auth = tweepy.OAuthHandler("consumer_key", "consumer_secret")

# 認証のためにユーザを Twitter にリダイレクト
redirect_user(auth.get_authorization_url())

# Access Token の取得
auth.get_access_token("verifier_value")

# API インスタンスの初期化
api = tweepy.API(auth)

全部フォローする

この例は認証したユーザの全てのフォロワーをフォローバックするスニペットです.

for follower in tweepy.Cursor(api.followers).items():
    follower.follow()

カーソルを使って利用制限到達時の対応をする

カーソルは反復処理しているときに利用制限に達すると RateLimitError例外を投げるので, イテレータを用いることで処理することができます.

このスニペットを走らせると, フォローしている全てのユーザのうち, フォロワー 300 人以下のユーザを表示させます (例えばこれによって明らかなスパムアカウントを除外できる). もし利用制限に達した場合は 15 分間待機します.

# この例では, time.sleep(15 * 60) を用いて待機している.
# もちろん他の適当な方法で構わない.

def limit_handled(cursor):
    while True:
        try:
            yield next(cursor)
        except tweepy.RateLimitError:
            time.sleep(15 * 60)

for follower in limit_handled(tweepy.Cursor(api.followers).items()):
    if follower.friends_count < 300:
        print(follower.screen_name)