Tweepy Cursor.items()无法与api.retweeters一起正常工作

问题描述 投票:2回答:1

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

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参数也不会更改。

我是否误解了基本原理? Twitter是否不允许某人检索所有推文?我是不是误解了tweepy?我将不胜感激。谢谢!

python twitter tweepy
1个回答
0
投票

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

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

解决方案:

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

2)如果鸣叫是“新鲜”和“热门”(参与度很高),请拨打多个电话。您可以通过它获得最新的推文。

© www.soinside.com 2019 - 2024. All rights reserved.