我正在使用Flask和Tweepy来搜索实时推文.在前端,我有一个用户文本输入,以及一个名为"搜索"的按钮.理想情况下,当用户在输入中提供搜索词并单击"搜索"按钮时,Tweepy应该侦听新的搜索词并停止前一个搜索词流.单击"搜索"按钮时,它将执行此功能:
@app.route('/search', methods=['POST'])
# gets search-keyword and starts stream
def streamTweets():
search_term = request.form['tweet']
search_term_hashtag = '#' + search_term
# instantiate listener
listener = StdOutListener()
# stream object uses listener we instantiated above to listen for data
stream = tweepy.Stream(auth, listener)
if stream is not None:
print "Stream disconnected..."
stream.disconnect()
stream.filter(track=[search_term or search_term_hashtag], async=True)
redirect('/stream') # execute '/stream' sse
return render_template('index.html')
Run Code Online (Sandbox Code Playgroud)
/stream上面代码中第二行到最后一行执行的路由如下:
@app.route('/stream')
def stream():
# we will use Pub/Sub process to send real-time tweets to client
def event_stream(): …Run Code Online (Sandbox Code Playgroud)