twitterのログを取得する


このエントリーをはてなブックマークに追加

twitterで自分の発言した過去ログを取得することを試みた。環境はvmware上のUbuntu 8.04。手順は以下。

  1. pythonのライブラリをインストール
    • python-twitterを導入する。ただし芋づる式に以下のライブラリが必要になった。
    • python-twitterのインストールマニュアルに従って python setup.py test と打つと、テストデータがなくて FAILED (errors=17) と返ってきた。でも気にしない。
  2. 必要なキーの取得
  3. python-twitterライブラリのexamplesディレクトリにあるtweet.pyを改造して、過去ログを取得できるようにする。

tweet.pyの改造は以下のように行った。

import sys
import codecs
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
  • apiを書き換える
status = api.PostUpdate(message)

の代わりに

    for pageIdx in range(1, 10):
      status = api.GetUserTimeline(
        id=twitterid,
        count=200,
        page=pageIdx,
        include_rts=True,
        include_entities=True
        )
      for s in status:
        print "created_at               : %s" %  s.created_at               
        print "created_at_in_seconds    : %s" %  s.created_at_in_seconds
        print "favorited                : %s" %  s.favorited                
        print "in_reply_to_screen_name  : %s" %  s.in_reply_to_screen_name  
        print "in_reply_to_user_id      : %s" %  s.in_reply_to_user_id      
        print "in_reply_to_status_id    : %s" %  s.in_reply_to_status_id    
        print "truncated                : %s" %  s.truncated                
        print "source                   : %s" %  s.source                   
        print "id                       : %s" %  s.id                       
        print "text                     : %s" %  s.text                     
        print "location                 : %s" %  s.location                 
        print "relative_created_at      : %s" %  s.relative_created_at
        print "user                     : %s" %  s.user                     
        print "urls                     : %s" %  s.urls                     
        print "user_mentions            : %s" %  s.user_mentions            
        print "hashtags                 : %s" %  s.hashtags                 
        print ""

とでもしてやる。twitteridには適当なtwitter idをあらかじめ代入しておく。上記の例では、200件の取得を9回繰り返すことになる。