【问题标题】:Failed attempts to bypass "Rate limits" and other Twitter API errors绕过“速率限制”和其他 Twitter API 错误的尝试失败
【发布时间】:2014-10-15 04:05:03
【问题描述】:

我的代码尝试在 2014 年 10 月 1 日收集有关“汽车”的推文。为了尝试处理速率限制或任何其他与 Twitter 相关的错误(即容量过剩),我在最后实现了代码,告诉程序在发生 TweepError 时停止并等待 20 分钟。

不幸的是,由于脚本崩溃,它不起作用,我仍然可以看到速率限制错误消息。请指教,谢谢。

import tweepy
import time
import csv

ckey = "xxx"
csecret = "xxx"
atoken = "xxx-xxx"
asecret = "xxx"

OAUTH_KEYS = {'consumer_key':ckey, 'consumer_secret':csecret,
    'access_token_key':atoken, 'access_token_secret':asecret}
auth = tweepy.OAuthHandler(OAUTH_KEYS['consumer_key'], OAUTH_KEYS['consumer_secret'])
api = tweepy.API(auth)

startSince = '2014-10-01'
endUntil = '2014-10-02'

searchTerms = 'cars'

for tweet in tweepy.Cursor(api.search, q=searchTerms, 
    since=startSince, until=endUntil).items(999999999):

    try:
        print "Name:", tweet.author.name.encode('utf8')
        print "Screen-name:", tweet.author.screen_name.encode('utf8')
        print "Tweet created:", tweet.created_at

    except tweepy.error.TweepError:
        time.sleep(60*20)
        continue

    except tweepy.TweepError:
        time.sleep(60*20)
        continue

    except TweepError:
        time.sleep(60*20)
        continue

    except IOError:
        time.sleep(60*5)
        continue

    except StopIteration:
        break

【问题讨论】:

  • 你为什么不使用流媒体 API?它没有速率限制 - dev.twitter.com/streaming/overview
  • 哦,我不知道流 API 没有速率限制。虽然我确实认为获取前一天的 API 数据对我的项目来说更好,因为 1)我担心是否存在互联网中断,流式传输会丢失大量数据,而从 API 调用前一天的 1% 推文,如果事情变糟了,我可以重试,2) 我实际上不需要流式传输数据,因为我当前的应用程序不需要立即获取数据。

标签: python-2.7 twitter tweepy rate-limiting


【解决方案1】:

您的问题是您的 try-except 语句发生独立于您对 Twitter API 的调用。 tweepy.Cursor 是触发速率限制错误的原因。尝试包括这一行:

for tweet in tweepy.Cursor(api.search, q=searchTerms, 
    since=startSince, until=endUntil).items(999999999):

在您的try 中,查看TweepError 是否被捕获(应该是)。您可能需要稍作修改才能使光标从正确的位置继续,但这应该是微不足道的。

【讨论】:

    猜你喜欢
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多