本記事ではPythonのTwitter APIのライブラリTweepyを使って、自分のタイムラインと指定したユーザーのタイムラインの取得方法について書いていきます。
本記事では以下のことをやっています。
- タイムラインの取得方法
- 取得したタイムラインの中身を取り出す
- 取得件数を指定する
環境準備
Tweepyを利用してTwitterのタイムラインを取得するためには、TweepyのインストールとTwitterにDeveloper登録の申請をする必要があります。
もうやったよ、という方はここは読み飛ばしてください。
Tweepyはpip
でインストールできます。
pip install tweepy
Developer登録は下の記事を参考にしてみてください。
基本的な使い方
まずはタイムラインの取得について、基本的な使い方です。
上のプログラムでは、Twitter APIを利用するためにOAuth認証し、APIに接続するコードです。コメントに書いてある通り、今回は一番下の行以降にタイムラインを取得するコードを書いていきます。
タイムラインは自分自身のアカウントと指定したユーザーのものを取得することができます。どちらもデフォルトで最新のツイートから20件まで取得することができます。
自分自身のアカウントのタイムライン(※Developer登録で使用したアカウント)を取得するにはhome_timeline()
を使います。参考リンク
指定したユーザーのタイムラインを取得するには、ユーザーのスクリーンネームをuser_timeline()
に渡します。参考リンク
取得したタイムラインstatus_list
はStatusオブジェクトが入ったリストになっています。
デフォルトでは20件までしか取得することができません。もっと多くのツイートを取得したい場合は、引数のcount
で取得件数を指定することができます。
上の例では、ツイートの取得件数を100に設定しています。ただし、count
で指定できる取得件数は最大で200です。
さらに多くのツイートを取得したい場合は、Cursor
を使う方法があります。Cursor
については、本記事の後半に書いてあります。
ちなみに、user_timeline()
に自分自身のアカウントを指定してタイムラインを取得することはできますが、home_timeline()
を使って取得できる内容とは異なります。
home_timeline()
では、自分が投稿したツイートだけではなく、フォローしているユーザーのツイートも取得します。一方で、user_timeline()
では、自分が投稿したツイート(例:リプライ、リツイートとか)だけを取得し、自身がフォローしているユーザーのツイートは取得しません。
取得したタイムラインの中身を見る
ここからは取得したタイムラインの中身の見方について書いてみます。
取得したタイムラインはリストの形式になっているので、for文で一つずつツイートを取り出して中身を見てみましょう。
とりあえず、よく使いそうな情報だけを取り出してみました。ツイートの情報はStatusオブジェクト、ツイートをしたユーザーに関する情報はStatusオブジェクトのuser
から見ることができます。
ツイートの情報は他にも色々あるので、もっと詳しく知りたい方はこちらを参考にしてみてください。
Cursorを使って大量のツイートを取得する
count
だと、最大200件のツイートしか取得できませんでしたが、Cursorを使うことにより、約3200件のツイートを取得することが可能になります。参考リンク
使い方は簡単で、Cursorにタイムラインを取得するメソッドを渡して、items()
に取得件数を指定するだけです。もし、取得件数を指定しなければ、最大で3200件前後のツイートを取得することができます。
このサンプルプログラムでは取得件数を500に指定しています。
指定しない場合は下のようになります。
一度に大量のツイートを取ってこようとすると、エラーが出てプログラムが途中で止まってしまう可能性があるので、APIのインスタンス生成時のコードを以下のようにすることで途中停止を回避することができます。
Twitter APIの使い方をまとめた記事
タイムラインの取得方法だけではなく、他の使い方について書いた記事です。