django - Tweepy 速率限制/分页问题。

标签 django python-2.7 twitter tweepy django-1.6

我组装了一个小型 Twitter 工具来提取相关推文,以便稍后在潜在语义分析中进行分析。讽刺的是,这一点(更复杂的一点)工作得很好——问题在于拉动推文。我正在使用下面的代码来设置它。

这在技术上是有效的,但没有达到预期 - 我认为 .items(200) 参数会为每个请求提取 200 条推文,但它被分成 15 个推文 block (因此 200 个项目“花费”了我 13 个请求) - 我了解这是原始/默认 RPP 变量(现在 Twitter 文档中的“计数”),但我已经在光标设置中尝试过(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

最佳答案

在同事的帮助下,我最终解决了这个问题。事实上,rpp 和 items() 调用是在实际的 API 调用之后进行的。 Twitter documentation 中的“计数”选项如上所述,它以前是 RPP,并且在 Tweepy 2.3.0 中仍然被标记为 rpp,这似乎是这里的问题。

我最终做的是修改 Tweepy 代码 - 在 api.py 中,我将“count”添加到搜索绑定(bind)部分(在我的安装中的 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 次。

关于django - Tweepy 速率限制/分页问题。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26473393/

相关文章:

Python:xPath 在 ElementTree 中不可用

python - 如何使用 PyArg_ParseTupleAndKeywords 来解析带有可选参数和关键字的元组?

javascript - 用于查找用户位置的 Node.js 服务器端解决方案

python - django:TypeError: 'tuple' 对象不可调用

python - OperationalError : (2002, "Can' t 通过socket '/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)"

python - 我想将views.py中获得的值传递给forms.py

iphone - Twitter + OAuth 用于带有图像的推文

Django - 如何在 'NOT IN' 中指定 'limit_choices_to' ?

python - PyQt4 和 Python 3 - 显示来自 URL 的图像

python - 跟踪哪个(tweepy)过滤器捕获了一条推文