キーワードでツイートを検索する方法
研究でキーワードからツイートを集める必要があったのでメモ
下では「"キーワード"+日付」をファイル名にしています。
保存するデータはツイートIDやユーザーIDなど。
urlopenは403エラーを返すことがあるので、正常に終了させたい人は例外処理を書いてください。
ここではsoftbankを例にしています。
import json import urllib2 import datetime def searchTweets(keyword): """キーワードからツイートを検索""" d = datetime.datetime.today() date = d.strftime("%Y_%m_%d") f = open(keyword + '_' + date, 'w') i = 0 next_page = '?q=' + keyword + '&rpp=100' + '&locale=ja' while i < 100: print next_page url = 'http://search.twitter.com/search.json' + next_page fp = urllib2.urlopen(url) html = fp.read() fp.close() data = json.loads(html) for d in data['results']: id = str(d['id']) text = d['text'].encode('utf_8') to_user_id = str(d['to_user_id']) from_user_id = d['from_user_id_str'].encode('utf_8') type = "" if to_user_id == None: type = 'M' elif text.find('RT') >= 0: type = 'RT' else: type = 'T' created_at = d['created_at'].encode('utf_8') f.write(id + '\t' + type + '\t' + created_at + '\t' + from_user_id + '\t' + to_user_id + '\t' + text + '\n') try: next_page = data['next_page'].encode('utf_8') except: print "no data" i = 100 i += 1 f.close() if __name__ == '__main__': searchTweets('softbank')