【问题标题】:getting error in downloading twitter data through Streaming API通过 Streaming API 下载 Twitter 数据时出错
【发布时间】:2015-09-02 10:33:54
【问题描述】:

我正在使用 Python 2.7 和 tweepy 来下载 Twitter 数据。但大约 1 MB 后,下载停止。

我的代码如下:

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'])

我使用命令 python tweet.py > twitter_data.text

运行它

我在下载大约 1.4 MB 后得到的回溯屏幕截图是:

【问题讨论】:

    标签: python tweepy


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-07
      • 2013-07-10
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多