2017-09-26 4 views
0

J'ai utilisé Tweepy pour rassembler des Tweets pour une zone via l'API de streaming et je n'ai collecté la latitude/longitude que pour un tweet mais je voudrais en ajouter d'autres et je ne suis pas sûr de ce que les détails sont. J'utilise ce bloc de code pour obtenir des valeurs lat/long:Comment obtenir le nom d'utilisateur Twitter de Tweepy?

import json, tweepy 
from html.parser import HTMLParser 

consumer_key = "" 
consumer_secret = "" 
access_token = "" 
access_secret = "" 

count = 0 

class StdOutListener(tweepy.StreamListener): 
    def on_data(self, data): 
     global count 
     decoded = json.loads(HTMLParser().unescape(data)) 
     if decoded.get('coordinates',None) is not None: 
     coordinates = decoded.get('coordinates','').get('coordinates','') 
     name = decoded.get('name','') 
     with open("C:\\Users\\gchre\\Desktop\\Tweets.txt", "a") as text_file: 
      print(decoded['coordinates'], file=text_file) 
     print(decoded['coordinates']) 
     count += 1 
     return True 
    def on_error(self, status): 
     print(status) 

l = StdOutListener() 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_secret) 
stream = tweepy.Stream(auth, l) 

while count < 1000000: 
    stream.filter(locations=[-88.853859,41.220047,-86.953073,42.758134]) 

Je voudrais que cela également imprimer dans le fichier texte le nom d'utilisateur spécifique (@handle) et le moment où Tweet a été créé . Je ne suis pas sûr si je devrais le faire à l'intérieur de la boucle if decoded.get('coordinates',None) is not None: ou non.

Répondre

1

Je pense que vous avez besoin de lire la documentation de Twitter Dev pour comprendre la structure de données d'un tweet.

Merci.

1

Pour les intéressés, j'ai tout compris, dans la boucle if decoded.get(), j'ai ajouté les éléments suivants:

user = decoded.get('user','').get('screen_name','') 
date = decoded.get('created_at','') 

Ensuite, au sein de la ligne d'impression I ajouté les valeurs suivantes:

print((decoded['coordinates'], user, date), file=text_file)