首页 > 解决方案 > 有没有办法只在特定时间使用 python 流式传输推文?

问题描述

我正在使用 tweepy 来传输推文。

据我所知,我们可以启动流媒体并让它无限期地运行以处理推文。

我正在寻找一种方法来限制此流并在我们可以指定的大约 10 分钟后退出流媒体。

从文档中,我找不到任何可以这样做的东西。(我可能也错过了。)

如何指定流媒体可以继续收听推文的时间量。

import json

from tweepy import StreamListener, OAuthHandler, Stream


class StdOutListener(StreamListener):
    def __init__(self):
        self.hashtag_frequency = {}

    def on_data(self, data):
        hashtags = json.loads(data)["entities"]["hashtags"]
        for hashtag in hashtags:
            text = hashtag["text"]
            self.hashtag_frequency[text] = self.hashtag_frequency.get(text, 1) + 1
        print(self.hashtag_frequency)
        return True

    def on_error(self, status):
        print(status)


listener = StdOutListener()
auth = OAuthHandler('', '')
auth.set_access_token('', '')

stream = Stream(auth, listener)

stream.filter(track=['testing'])

标签: pythonpython-3.xtwittertweepytwitter-streaming-api

解决方案


你可以在那里添加一个计时器,就像break在它的末尾添加一个

import time
t = #Add number of seconds you want the bot to run, if you want 10 minutes, than it's 600 seconds
if t != 0: 
        mins, secs = divmod(t, 60) 
        timer = '{:02d}:{:02d}'.format(mins, secs) 
        print(timer, end="\r")  
        t -= 1
else:
     return

推荐阅读