【问题标题】:How the twitter API works for streaming tweets ? Error 420twitter API 如何用于流式推文?错误 420
【发布时间】:2020-03-02 16:32:38
【问题描述】:

我尝试使用 Twitter Streaming API 提取推文。

昨天,经过多次测试,Twitter API 返回了一个错误 420。我阅读了一些主题和文档,问题是我在短时间内建立了很多联系。

from tweepy import Stream, API
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import json

# All API keys / access token
consumer_key = "something"
consumer_secret_key = "something"
access_token = "something"
access_token_secret = "something"

proxies = {
            "http": "my_http_proxy",
            "https": "my_https_proxy"
}


class Listener(StreamListener):

    def on_status(self, status):
        print("text : " + str(status))

    def on_error(self, status):
        if status == 420:
            print("error : {}".format(str(status)))
            return False


auth = OAuthHandler(consumer_key, consumer_secret_key)
auth.set_access_token(access_token, access_token_secret)
api = API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)

listener = Listener()
twitterStream = Stream(api.auth, listener=listener, proxies=proxies)

try:
    twitterStream.filter(track=['nasa'])
except Exception as e:
    print("...end : {}".format(e))
    twitterStream.disconnect()

twitterStream.disconnect()

我想了解:

  • 如何避免此错误?
  • 再次请求 API 需要等待多长时间?
  • 此 API 与标准帐户的限制速率是多少?

非常感谢您的回复。

【问题讨论】:

    标签: python twitter tweepy twitter-streaming-api


    【解决方案1】:

    Twitter 的 API 返回 420 HTTP 状态码

    当应用因发出过多请求而受到速率限制时。

    见https://developer.twitter.com/en/docs/basics/response-codes。

    具体来说,对于流式端点:

    HTTP 420 错误以指数方式回退。从等待 1 分钟开始,每次尝试加倍。请注意,收到的每一个 HTTP 420 都会增加您必须等待的时间,直到速率限制对您的帐户不再有效。

    未实施退避并尽可能频繁地尝试重新连接的客户端将在几分钟内限制其连接速率。速率受限的客户端将收到所有连接请求的 HTTP 420 响应。

    断开连接然后频繁重新连接(例如更改查询参数)的客户端存在速率受限的风险。

    Twitter 不会公开会导致发生速率限制的连接尝试次数,但对测试和开发有一定的容忍度。不时进行几十次连接尝试不会触发限制。但是,如果收到 HTTP 420 响应,则必须在几分钟内停止进一步的连接尝试。如果您的客户经常受到速率限制,您的 IP 可能会在一段不确定的时间内被阻止访问 Twitter。

    见https://developer.twitter.com/en/docs/tweets/filter-realtime/guides/connecting。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 2023-03-18
      • 2013-10-06
      • 2011-05-25
      相关资源
      最近更新 更多