簡體   English   中英

收聽實時推文的最快方式

[英]Fastest way to listen to real-time tweets

我正在尋找檢查特定用戶 (TwitterID) 是否實時發推文的最快方法。 為了實現這一點,我使用了 Tweepy 和 stream function,這會導致在大約 -+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])

我想說大約 5 秒是一個合理的延遲,因為您的程序沒有在與 Twitter 的核心系統相同的服務器上運行。 您受到網絡和 API 延遲的影響,這些事情超出了您的控制范圍。 沒有真正的方法可以重寫此邏輯來更改推文發布與到達 API 之間的時間。 如果您考慮 Twitter 內部發生的內部事情,來自發布的推文並可能被數百萬追隨者傳播,那么 API - 在未知網絡連接的末尾 - 將推文數據獲取到 < 5秒本身就很瘋狂。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM