twitterで自分の発言した過去ログを取得することを試みた。環境はvmware上のUbuntu 8.04。手順は以下。
- pythonのライブラリをインストール
- 必要なキーの取得
- http://d.hatena.ne.jp/reppets/20100522/1274553529 で述べられている通り。
- http://twitter.com/oauth_clients で登録して「Consumer Key」と「Consumer Secret」を取得。
- 「アクセストークン取得に使用するコード」をそのまま使わせていただき、「User key」と「User secret」を取得。
- http://d.hatena.ne.jp/reppets/20100522/1274553529 で述べられている通り。
- 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回繰り返すことになる。