以前Twitterのデータマイニングフィードを与えられてましたが、ここ数日調子が良くない。
今まで600件取れてたのに20件しか取れなくなってしまいました。
TwitterのDevelopment Teamにメール投げたところ…
「Streaming APIつかえや( ^ω^)」と帰って来ました。
なんていうかデータマイニングフィード軽く流されましたが、さっそく使ってみることに。
いくつかタイプがあるみたいです。
Streaming API Documentation
とりあえず制約なしで使えるspritzerを試してみることに。
ではLet's Access!
http://stream.twitter.com/spritzer.json
おお、確かにストリーミングデータですね!
パッと見た感じでは結構取得できてそう。
ということでさっそくデータマイニングフィードと比較。
今まで1分で600件でしたが、このspritzerでは90秒ほどかかりました。
# 実行時間の計測は結構適当なんでばらつきはあるかも。
[結論]
なかなかに使える。
以下今回のソース
# BasicAuth.pyは過去の記事参照
◆spritzer.py
#!/usr/bin/python
# -*- coding: utf-8 -*
#@author Junki OHMURA
#@date 2009/05/26
import BasicAuth
import simplejson as json
import sys, os
from datetime import datetime
#Basic認証
realm = "Firehose"
host = "http://stream.twitter.com/spritzer.json"
usrname = "user"
passwd = "pass"
basiApi = BasicAuth.BasicAuthentication(realm, host, usrname, passwd)
cont = basiApi.get("http://stream.twitter.com/spritzer.json")
i=1
start = datetime.now()
while 1:
s = cont.readline()
if not s:
break
obj = json.loads(s)
print i
print obj['id']
print obj['text']
print obj['created_at']
user = obj['user']
print user['id']
print user['name']
i = i+1
if(i==600):
end = datetime.now()
break
print "TIME"
print end -start