2015/04/14

tweepyライブラリを利用する (タイムラインの取得)

tweepyでタイムラインを取得します。
home_timelineでホームタイムライン、user_timelineでユーザタイムラインです。
list_timelineユーザリストのタイムラインですが、こちらはリストIDが必要になるので、今回は割愛します。

1.ホームライムライン
home_timelineメソッドを使うと、ツイート(status)のリストが取得できます。

import tweepy

CONSUMER_KEY    = '(コンシューマキー)'
CONSUMER_SECRET = '(コンシューマシークレット)'
ACCESSS_TOKEN   = '(アクセストークン)'
ACCESS_SECRET   = '(アクセストークン シークレット)'

if __name__ == '__main__':
    try:
        auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
        auth.set_access_token(ACCESSS_TOKEN, ACCESS_SECRET)
        api = tweepy.API(auth)

        for status in api.home_timeline(count=10)[::-1]:
            print('-----------------------------------------------------')
            print('name:' + status.user.name)
            print(status.text)

    except tweepy.TweepError as e:
        print(e.reason)


パラメータ count の値が取得するツイート数になります。
取得したタイムラインのリストは新しいツイートから順に格納されていますが、ここではコンソールに出力する関係上逆順で表示させています。

実行結果

コマンドラインで実行すると文字コードの関係で出力エラーになる場合がありますので、ここではIDLE上で実行しています。
テストアカウントなので、ホームらしくないですが… _| ̄|○

パラメータ since_id にIDを指定することで、指定ID以降のタイムラインを取得することが出来ますので、一定のタイミングで使用すればタイムラインを表示し続けることが可能ですが、ホームライムラインはリミットが15分に15回なので、頻繁にこのメソッド使うと403エラーになります。
初回のみhome_timelineメソッドを使い、以降はストリームを使用したほうがいいですね。
ストリームについては別の機会に紹介します。

2.ユーザライムライン
自分以外のユーザのタイムラインを取得するには、user_timelineメソッドを使用します。
14行目を以下のように修正します。

for status in api.user_timeline(id=228949885, count=10)[::-1]:

screen_nameも使用可能です。

for status in api.user_timeline(screen_name='EagleAndHorses', count=10)[::-1]:

これで、指定したユーザのタイムラインを取得できます。

実行結果