Obtenez des mots-clés arbitraires à l'aide de l'API Streaming de Twitter. Après tout, s'il s'agit de home_timeline, seules les personnes qui le suivent ne pourront pas collecter de données à moins que le streaming ne soit utilisé. On en a beaucoup parlé, mais maintenant j'ai touché à l'API Streaming.
stream.py
#!/user/bin/env python
# -*- coding: utf-8 -*-
from requests_oauthlib import OAuth1Session
import json
import requests
import time, calendar
import sys, codecs
word = raw_input(u"input: ")
C_KEY = "*************************************"
C_SECRET = "*************************************"
A_TOKEN = "*************************************"
T_SECRET = "*************************************"
URL = "https://stream.twitter.com/1.1/statuses/filter.json"
def Client_key():
return OAuth1Session(C_KEY,
client_secret = C_SECRET,
resource_owner_key = A_TOKEN,
resource_owner_secret = T_SECRET
)
def Response(client, **filter_data):
return client.post(
URL,
data = filter_data,
stream = True
)
def YmdHMS(created_at):
time_utc = time.strptime(created_at, '%a %b %d %H:%M:%S +0000 %Y')
unix_time = calendar.timegm(time_utc)
time_local = time.localtime(unix_time)
return int(time.strftime("%Y%m%d%H%M%S", time_local))
def Print_l(r):
for line in r.iter_lines():
tweet = json.loads(line)
Created_at = YmdHMS(tweet["created_at"])
User = (tweet["user"]["screen_name"].encode("utf-8"))
Name = (tweet["user"]["name"].encode("utf-8"))
Text = (tweet["text"].encode("utf-8"))
try:
if tweet["user"]["lang"] == "ja":
print "ID: ", User
print "Nom d'utilisateur: ", Name
print "Texte: ", Text
print Created_at
print "==" * 40
except:
pass
if __name__ == "__main__":
client = Client_key()
r = Response(client, track=word)
Print_l(r)
Puisque vous obtenez des choses en temps réel, vous ne pouvez pas trouver un mot clé étrange et il n'y a pas d'objet json! Je me mets en colère. Il vaut mieux aller chercher les balises #hash unilatéralement.
Le changement de created_at à l'heure du Japon http://blog.unfindable.net/archives/4302 J'ai utilisé l'URL ci-dessus.
Terminez le script avec ctr + c.
Recommended Posts