【问题标题】:Is there a way to stream tweets using python only for specific time?有没有办法只在特定时间使用 python 流式传输推文?
【发布时间】:2021-02-23 04:09:48
【问题描述】:

我正在使用 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'])

【问题讨论】:

    标签: python python-3.x twitter tweepy twitter-streaming-api


    【解决方案1】:

    你可以在里面添加一个计时器,比如在它的末尾添加一个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
    

    【讨论】:

    • 但是,我在这里没有使用 while 循环。它只是负责处理事情的 filter() 方法。
    • 哦,在那种情况下,只需添加一个条件,即if t =0: break
    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 2021-02-19
    • 2021-04-17
    • 2021-08-07
    • 2020-10-11
    • 2012-02-25
    • 2021-08-31
    • 2018-10-14
    相关资源
    最近更新 更多