【问题标题】:Dealing with request limit in twitter REST API处理 twitter REST API 中的请求限制
【发布时间】:2011-07-02 00:38:35
【问题描述】:

我有一个 Django 应用程序需要从多个 Twitter 帐户中提取 follower_count 信息。但是我遇到了请求限制的一些问题。该应用程序不是 twitter 应用程序,因此它没有帐户并且不使用 OAuth,因此不可能列入白名单(如果我正确理解白名单)。所以我有几个问题:

1) 有没有办法绕过非 Twitter 应用程序的这个限制

2) 150 的限制是硬的 1 小时吗?这意味着如果您在上午 8 点达到限制,您是否会一直等到上午 9 点而不管在此期间提出的请求,还是在最初的 150 次之后每次提出请求时都会重置小时计数?

3) 我目前正在使用以下代码来获取我的数据:

for page in pages:
    url = 'api.twitter.com/1/users/show/' + page.twitter_name + '.json'
    target = urllib2.urlopen(url)
    request = simplejson.loads(target.read())

    # parse the request

这算作每个页面对象一个请求,还是我可以在这段代码中做些什么来减少我每页发出的请求数量?

4) 我是否正确理解白名单是针对推特应用程序的,还是应该考虑将我从中提取信息的各种推特帐户列入白名单? (我确定此信息存在,但我能找到的有关白名单的所有链接都已损坏)

编辑: 我现在发现 twitter 不再提供新的白名单,所以请忽略问题的这些元素。

【问题讨论】:

    标签: django twitter


    【解决方案1】:

    我会说,对于像追随者数量这样的东西,你不需要它是及时更新的。由于每个负载已经生成了一堆请求(获取多个用户数据),因此最好牺牲一点准确性来减少请求生成。将您获得的计数存储在页面对象中,可能还有最后一次请求的时间戳,然后使用模型中的数字,仅重新评估自上次检​​查以来是否超过一小时。无论如何,追随者人数可能不会发生太大变化。

    更新:任何时候您使用 3rd-party API 时,都应该在开发中使用模拟,尤其是在涉及速率限制的情况下。只需获取一次响应,保存它,然后将您的 AJAX 请求指向在开发期间保存的副本。

    【讨论】:

    • 是的。我只计划每天运行一次脚本,所以我并不真正关心在生产中遇到这个问题。我更多的是试图找到构建和测试应用程序的解决方法。当我在一小时内只能测试脚本 3 次时,这会变得非常令人沮丧。
    【解决方案2】:

    这里有一个很好的方法可以用来查找您剩余的“剩余点击量”: http://api.twitter.com/1/account/rate_limit_status.json

    它返回类似这样的内容,让您知道何时允许您提出另一个请求:

    {
        "remaining_hits": 150,
        "reset_time_in_seconds": 1277234708,
        "hourly_limit": 150,
        "reset_time": "Tue Jun 22 19:25:08 +0000 2010"
    }
    


    战俘

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多