【问题标题】:Twitter Streaming API: 'Connection broken: IncompleteRead'Twitter 流 API:“连接中断:IncompleteRead”
【发布时间】:2021-09-13 14:38:24
【问题描述】:

我正在通过 Python 和 Tweepy 上的 Streaming API 从 Twitter 流式传输一些数据。代码如下:

class TwitterStreamer():

    def __init__(self):
        pass

    def stream_tweets(self, twitter_data_title, key_words):
        # This handles Twitter authetification and the connection to Twitter Streaming API
        listener = StreamListener(twitter_data_title)
        auth = tweepy.OAuthHandler(api_key, api_secret_key)
        auth.set_access_token(access_token, access_secret_token)
        stream = tweepy.Stream(auth, listener)

        # This line filter Twitter Streams to capture data by the keywords: 
        stream.filter(track=key_words)

class StreamListener(tweepy.StreamListener):

    def __init__(self, twitter_data_title):
        self.fetched_tweets_filename = twitter_data_title

    def on_data(self, data):
        try:
            print(data)
        
            with open(self.fetched_tweets_filename, 'a') as tf:
                tf.write(data)
            return True
        except BaseException as e:
            print("Error on_data %s" % str(e))
        return True
      
    def on_error(self, status):
        print(status)


if __name__ == '__main__':
    twitter_streamer = TwitterStreamer()

但是,一段时间后,我总是收到错误“连接断开:IncompleteRead”。我觉得这个问题可能与之前的帖子(Twitter Streaming API - urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead)有关,但是我不明白他是如何解决这个问题的。如何以一种计算成本更低的方式剥离函数?

非常感谢!

【问题讨论】:

    标签: python spyder tweepy twitter-streaming-api twitterapi-python


    【解决方案1】:

    在 Tweepy 上使用 Twitter 流式 API 时,这是一个持续存在的问题(我无法确认这是否发生在其他任何地方),我也遇到过。

    我花了几天时间试图弄清楚如何解决它,但没有真正的解决方案。

    我最终做的是使用名为Immortal 的程序管理器,如果程序停止,它将立即重新启动程序。我已经使用了一年多,没有任何问题,它会立即重新启动我的程序。

    安装后,您只需键入immortal 然后添加其余命令即可使用它,例如:

    immortal python3 twitterbot.py
    

    当您的程序不可避免地引发 IncompleteRead 错误时,Immortal 将直接启动它!

    【讨论】:

      猜你喜欢
      • 2019-04-18
      • 1970-01-01
      • 2018-08-10
      • 2013-03-21
      • 2019-08-04
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多