Tweepyで特定のユーザの全フォローを取得する

結論

import tweepy

def auth():
    CONSUMER_KEY = '******'
    CONSUMER_SECRET = '*******'
    ACCESS_KEY = '******'
    ACCESS_SECRET = '******'
    
    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)    
    api = tweepy.API(auth_handler=auth, api_root='/1.1', secure=True)
    return api

if __name__ == '__main__':
      api  = auth()
      #idには対象のユーザのスクリーンネームを入れる
      c = tweepy.Cursor(api.friends , id="test-user")
      for friend in c.items():
           print friend.screen_name
  • 取り敢えずスクリーンネームだけ出してるけど、friendはUserオブジェクトか何かなはず
  • やりすぎるとAPIの制限を喰らう可能性がある(よく知らない)

自分がハマった点として、

api = auth()
usr = api.get_user("test-user")
friends = usr.friends()
#=> list型のUserオブジェクトが返ってくる

最後のfriendsにはUserオブジェクトが入ったリストっぽいオブジェクトが返ってくる。
しかし、このやり方では直近20件までのユーザしか取得できず、

c = tweepy.Cursor(usr.friends)

なんてやると、

TweepError: This method does not perform pagination

みたいに怒られるので不可能。

参考
- tweepy v1.4 documentation
http://pythonhosted.org/tweepy/html/index.html