2

Python 用の Twitter API ライブラリである Tweepy で使用しているコードを以下に示します。オンラインで見つけたほとんどのアプローチを試していますが、接続を閉じることもストリームを停止することもできませんでした。そうする方法はありますか?

私の機能の中で

 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()( 内でif (s == '0'):) 呼び出したときは、filterまだ呼び出していないため、ストリームは決して接続されません。の最新バージョンを使用していると仮定すると、残りのコードは正しいはずですtweepy。ストリームの実行中に発生したエラーはコールバックexceptに渡されるため、ブロックが呼び出されることはほとんどないことに注意してください。on_error

于 2014-03-13T19:09:13.497 に答える