2

我在下面包含了与 Tweepy 一起使用的代码,Tweepy 是 Python 的 Twitter API 库。虽然我正在尝试我在网上找到的大多数方法,但他们未能关闭连接或停止流。有什么办法吗?

在我的功能里面

 setTerms = s.split(',')
 streaming_api = tweepy.Stream(auth=auth, listener=StreamListener(), timeout=60 )
    if (s == '0'):
        streaming_api.disconnect()
        raise web.seeother('/dc')
        print "Failed to see this"
    try:
        twt = streaming_api.filter(track=setTerms)
    except:
        streaming_api.disconnect()
        #also cannot see this
    raise web.seeother('/stream')

这是流侦听器类

class StreamListener(tweepy.StreamListener):
        def on_status(self, status):
            try:
                printer(status.text, status.created_at)
            except Exception, e:
                pass
        def on_error(self, status_code): 
            print >> sys.stderr, 'Encountered error with status code:', status_code
            return True
        def on_timeout(self): 
            print >> sys.stderr, 'Timeout...'
            return True 
4

1 回答 1

0

第一次调用stream.disconnect()(inside if (s == '0'):)时,你还没有调用filter,所以流永远不会连接。假设您使用的是最新版本的tweepy. 请注意,该except块几乎不会被调用,因为流运行时发生的任何错误都会传递给on_error回调。

于 2014-03-13T19:09:13.497 回答