2015-09-02 1 views
1

Я использую Python 2.7 и tweepy для загрузки данных twitter. Но примерно через 1 Мб загрузка прекращается.Ошибка при загрузке данных twitter через Streaming API

Мой код, как показано ниже:

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


#consumer key, consumer secret, access token, access secret. 
ckey="NlilpJMYf7i4dGYXtJJONrDt5" 
csecret="S1xIaTJs2M1S4Okfm3LF1JkjGkNBOaDpkNl6HayOPcLFLWMrak" 
atoken="1144571546-MnpLF9GQqVdo5QzBysL1iZFW0p49kixER1xkHvK" 
asecret="LnVOgnFlgIaVd0qBYf7bJ9Dzl0nE2oKrjBDYc0L69XEsH" 



class listener(StreamListener): 

    def on_data(self, data): 
    print(data) 
    return(True) 

    def on_error(self, status): 
    print status 

auth = OAuthHandler(ckey, csecret) 
auth.set_access_token(atoken, asecret) 

twitterStream = Stream(auth, listener()) 
twitterStream.filter(track= ['nepal','police','army','constitution','earthquake','government','minister','kathmandu post','janakpur','everest']) 

Screenshot of the Traceback я запустить его с помощью команды питона tweet.py> twitter_data.text

Также снимок экрана TRACEBACK я получаю примерно через 1,4 МБ Скачано:

ответ

1

Ну почему-то проблема связи где-то есть. Возможно, вы захотите с этим справиться. Например, обращаясь к ProtocolError путем повторного подключения.

from requests.packages.urllib3.exceptions import ProtocolError 
from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 


CKEY = 'NlilpJMYf7i4dGYXtJJONrDt5' 
CSECRET = 'S1xIaTJs2M1S4Okfm3LF1JkjGkNBOaDpkNl6HayOPcLFLWMrak' 
ATOKEN = '1144571546-MnpLF9GQqVdo5QzBysL1iZFW0p49kixER1xkHvK' 
ASECRET = 'LnVOgnFlgIaVd0qBYf7bJ9Dzl0nE2oKrjBDYc0L69XEsH' 


class Listener(StreamListener): 

    @staticmethod 
    def on_data(data): 
     print(data) 
     return True 

    @staticmethod 
    def on_error(status): 
     print(status) 


def main(): 
    auth_handler = OAuthHandler(CKEY, CSECRET) 
    auth_handler.set_access_token(ATOKEN, ASECRET) 

    while True: 
     try: 
      stream = Stream(auth_handler, Listener()) 
      stream.filter(
       track=[ 
        'nepal', 'police', 'army', 'constitution', 'earthquake', 
        'government', 'minister', 'kathmandu post', 'janakpur', 
        'everest', 
       ] 
      ) 
     except ProtocolError as error: 
      print(error) 


if __name__ == '__main__': 
    main()