【问题标题】:Tweepy Cursor.items() not working as expected with api.retweetersTweepy Cursor.items() 无法与 api.retweeters 一起按预期工作
【发布时间】:2019-12-14 11:09:17
【问题描述】:

我有一些看起来像这样的代码:

import tweepy
auth = tweepy.OAuthHandler(...)
auth.set_access_token(...)
api = tweepy.API(auth)
for e, i in enumerate(tweepy.Cursor(api.retweeters, '1157819926532501504').items()): # 1157819926532501504 is the id of https://twitter.com/NASA/status/1157819926532501504
    print(e, i)

当我运行它时,我会得到这样的结果:

0 3249595190
1 1678701169
2 34877330
...
86 625615049
87 1157852235381870592

如果您查看https://twitter.com/NASA/status/1157819926532501504,您会看到这条推文有 3.2K 转推,而只有 88 条被打印出来。为什么是这样?我正在使用 tweepy.Cursor,所以分页应该自己处理,不是吗?我尝试api.retweeters(id='1157819926532501504', cursor=-1) 看看光标发生了什么,我得到了这样的响应:

([3249595190, 1678701169, ..., 625615049, 1157852235381870592], (0, 0))

更改光标参数不会更改响应,使用page 参数也不会。

我误解了基本原理吗?推特是否不允许检索推文的所有转发者?我误解了tweepy吗?我会很感激任何帮助。谢谢!

【问题讨论】:

  • 我自己也遇到了这个。我认为他们的免费 API 只有一页。我仍在搜索或特别记录此限制的地方,但我无法获得超过一页的转发者。

标签: python twitter tweepy


【解决方案1】:

确实有一个限制:100。 https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweets-id

不幸的是,它并不总是返回 100。有时,即使推文有 5 万次转发,它也只返回 40 或 50。

解决方案:

1) 使用与原始推文完全相同的文本运行常规搜索。这是检索更多转发的最佳机会。转推也会在常规搜索中返回。

2) 如果推文“新鲜”且“热门”(参与度很高),请打几个电话。您可以使用它获取最新的推文。

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 2019-09-04
    • 2016-05-15
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多