2016-02-26 3 views
0

Я пытаюсь извлечь данные из твиттера для обработки. Пожалуйста, см. Код, который я хочу, чтобы различные данные соответствовали определенному твиту, соответствующему заданной теме. Я могу получить данные (created_at, text, username, user_id). Он показывает ошибку, когда я пытаюсь извлечь (location, followers_count, friends_count, retweet_count).выборка данных, соответствующих твиту

from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 
import time 
import json 

ckey = '***********************' 
csecret = '************************' 
atoken ='*************************' 
asecret = '**********************' 

class listener(StreamListener): 

    def on_data(self,data): 
    try: 
     all_data = json.loads(data) 

     tweet = all_data["text"] 

     username = all_data["user"]["screen_name"] 

     timestamp = all_data["created_at"] 

     user_id = all_data["id_str"] 

     location = all_data["location"] 

     followers_count = all_data["followers_count"] 

     friends_count = all_data["friends_count"] 

     retweet_count = all_data["retweet_count"] 

     saveThis = str(time.time())+'::'+timestamp+'::'+username+'::'+user_id+'::'+tweet+'::'+followers_count+'::'+friends_count+'::'+retweet_count+'::'+location 
     saveFile = open('clean2.txt','a') 
     saveFile.write(saveThis) 
     saveFile.write('\n') 
     saveFile.close 
     return True 
    except BaseException, e: 
     print 'failed on data,',str(e) 
     time.sleep(5) 

def on_error(self, status): 
    print status 

auth = OAuthHandler(ckey, csecret) 
auth.set_access_token(atoken, asecret) 
twitterStream = Stream(auth, listener()) 
twitterStream.filter(track=["tweepy"])#topic 

ответ

0

Причина, по которой не работает на all_data["location"], что твиты не обладают таким свойством: https://dev.twitter.com/overview/api/tweets

  • же с friends_count, followers_count - они являются собственностью пользователей, а не твиты.

Код не должен наступить на all_date["retweet_count"], так как в твитах есть такое свойство.

P.S. пожалуйста, укажите сообщение об ошибке (даже если вы пропустите полный трекбэк) при отправке сообщений об ошибках. облегчает вам помощь, иначе нужно угадать, что может быть ошибкой.

+0

спасибо, что это помогло. Я получил retweet_count как таковой. Для followers_count я использовал followers_count = str (all_data ["user"] ["followers_count"]) и аналогично для других 3 ...... – ravi

Смежные вопросы