Tweety速率限制/分页问题。

时间:2014-10-20 19:26:47

标签: django python-2.7 twitter tweepy django-1.6

我已经整理了一个小小的Twitter工具来提取相关的推文,以便稍后在潜在的语义分析中进行分析。具有讽刺意味的是,那个位(更复杂的位)工作正常 - 它正在拉动推文的问题。我正在使用下面的代码进行设置。

这在技术上有效,但没有预期 - 我认为.items(200)参数每个请求会提取200条推文,但它被阻止为15个推文块(所以200个项目的成本'我13个请求) - 我明白这是原始/默认的RPP变量(现在在Twitter文档中'计数'),但我在Cursor设置中尝试过(rpp = 100,这是twitter文档中的最大值),并且它没有差。

Tweepy/Cursor docs
The other nearest similar question isn't quite the same issue

感激任何想法!我确定这是对设置的一个小调整,但我在页面和rpp上尝试了各种设置,但无济于事。

auth = tweepy.OAuthHandler(apikey, apisecret)
auth.set_access_token(access_token, access_token_secret_var)
from tools import read_user, read_tweet
from auth import basic
api = tweepy.API(auth)
current_results = []
from tweepy import Cursor
for tweet in Cursor(api.search,
                       q=search_string,
                       result_type="recent",
                       include_entities=True,
                       lang="en").items(200):
    current_user, created = read_user(tweet.author)
    current_tweet, created = read_tweet(tweet, current_user)
    current_results.append(tweet)
print current_results

1 个答案:

答案 0 :(得分:4)

我最终在同事的帮助下完成了这项工作。 Afaict,rpp和items()调用是在实际API调用之后发生的。来自Twitter documentation的'count'选项,如前所述,以前是RPP,在Tweepy 2.3.0中仍然被称为rpp,这似乎是个问题。

我最终做的是修改Tweepy代码 - 在api.py中,我将'count'添加到搜索绑定部分(我的安装中的L643,ymmv)。

""" search """
search = bind_api(
    path = '/search/tweets.json',
    payload_type = 'search_results',
    allowed_param = ['q', 'count', 'lang', 'locale', 'since_id', 'geocode', 'max_id', 'since', 'until', 'result_type', **'count**', 'include_entities', 'from', 'to', 'source']
)

这允许我将上面的代码调整为:

for tweet in Cursor(api.search,
                       q=search_string,
                       count=100,
                       result_type="recent",
                       include_entities=True,
                       lang="en").items(200):

这导致两个电话,而不是十五个;我用

仔细检查过这个
print api.rate_limit_status()["resources"]
每次通话后

,每次只剩下2次我的剩余搜索。