【问题标题】:Fastest way to listen to real-time tweets收听实时推文的最快方式
【发布时间】:2021-02-16 08:26:18
【问题描述】:

我正在寻找检查特定用户 (TwitterID) 是否实时发布推文的最快方法。为了实现这一点,我使用了 Tweepy 和流功能,这会导致在大约 -+5 秒内收到推文的通知。有没有更快的方法通过使用另一个库/请求或代码优化来检查某人是否发了推文?

提前致谢。

import tweepy

TwitterID = "148137271"

class MyStreamListener(tweepy.StreamListener):
    def __init__(self, api):
        self.api = api
        self.me = api.me()

    def on_status(self, tweet):

        #Filter if ID has tweeted
        if tweet.user.id_str == TwitterID:
            print("Tweeted:", tweet.text)


    def on_error(self, status):
        print("Error detected")
        print(status)


# Authenticate to Twitter
auth = tweepy.OAuthHandler("x")
auth.set_access_token("Y",
                      "Z")


# Create API object
api = tweepy.API(auth, wait_on_rate_limit=True,
                 wait_on_rate_limit_notify=True)

tweets_listener = MyStreamListener(api)
stream = tweepy.Stream(api.auth, tweets_listener)

stream.filter([TwitterID])

【问题讨论】:

  • 您找到解决方案了吗?

标签: python twitter tweepy


【解决方案1】:

我会说大约 5 秒是一个合理的延迟,因为您的程序与 Twitter 的核心系统不在同一台服务器上运行。您会受到网络和 API 延迟的影响,而这些事情超出了您的控制范围。没有真正的方法可以重写此逻辑来更改推文发布和到达 API 之间的时间。如果您考虑一下 Twitter 内部发生的内部事情,从发布的推文并将其散播给潜在的数百万追随者,那么 API - 在未知网络连接的末尾 - 获取内部的推文数据

【讨论】:

    猜你喜欢
    • 2016-08-06
    • 2016-02-18
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多