Tweepyで5,000人以上のユーザーを取得する
Tweepy のリファレンスだけを見ると気づきにくいですが,twitter の API リファレンスも参照すると,friends や followers は最大 5,000 人までしか取得できないと書かれています.
巷のいくつかのフォローチェックアプリで相互なのにフォローされていないとか出ることがありますが,もしかしたらこの API の性質を見落としてるのかもしれませんね.
通常のソースコード
フォローしているアカウント,フォローされているアカウントは Tweepy を使えば次のように取得できます.
試しにフォローしているアカウント数を取得してみます.
import tweepy
consumer_key = 'consumer keyの値'
consumer_secret = 'consumer secretの値'
access_token = 'access tokenの値'
access_token_secret = 'access token secretの値'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
friends = api.friends_ids()
print(len(friends))
このとき,出力は 5,000 ユーザーが限界です.
カーソル機能
そういうこともあろうかと,カーソル機能というものがあります.
先ほどでは取得しきれなかった 5,000 を超える分も取得できます.
カーソルを使って取得されるデータはリスト形式になっていないので,カーソルで取得してリストに要素を追加し,最後にその数を出力することでフォロー数を出力してみます.
import tweepy
#省略
api = twitter.API(auth)
friends = []
for friend in tweepy.Cursor(api.friends_ids).items():
friends.append(friend)
print(len(friends))
これで全て取得できます,やったね!
最後に
この機能は followers にも使えますし,デフォルトの上限がたった 20 アカウントになっている,リストに追加したアカウント数もすべて取得できます.