python - 如何获取特定 Twitter 用户的整个用户时间线
问题描述
所以我想出了这个脚本来从一个推特用户那里获取所有用户推文
import tweepy
from tweepy import OAuthHandler
import json
def load_api():
Consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
return tweepy.API(auth)
api = load_api()
user = 'allkpop'
tweets = api.user_timeline(id=user, count=2000)
print('Found %d tweets' % len(tweets))
tweets_text = [t.text for t in tweets]
filename = 'tweets-'+user+'.json'
json.dump(tweets_text, open(filename, 'w'))
print('Saved to file:', filename)
但是当我运行它时,每个请求只能获得 200 条推文。有没有办法获得 2000 条推文或至少 2000 多条推文?
请帮助我,谢谢
解决方案
Twitter API 有请求限制。您正在使用的那个对应于 Twitter statuses/user_timeline端点。您可以为此端点获得的最大数量记录为 3,200。另请注意,在 15 分钟的窗口中存在最大请求数,这可能解释了为什么您只获得 2000 个请求,而不是最大请求数。以下是您可能感兴趣的一些观察结果:
- 文档说最大计数是 200。
- 有一个 include_rts(包括转推)参数可能会返回更多值。虽然它是 Twitter API 的一部分,但我看不到 Tweepy 在哪里记录了它。
- 您可以尝试Tweepy Cursors看看是否会带回更多项目。
- 由于有 15 分钟的限制,您可以暂停到下一个 15 分钟窗口继续。也就是说,我对您的用例知之甚少,不知道这是否实用。
推荐阅读
- reactjs - 无法将 HTTP 标头放入变量中
- python - 如何在 python pandas 中的两个数据框之间有效地搜索?
- javascript - 如何更好地在记录器中添加 uuid
- javascript - 通过钩子 ReactJs 从 API SVG 动态加载
- reactjs - 在 reactjs 中使用外部 java 脚本
- sql - 仅基于时间的 SQL 时间戳过滤
- reactjs - 如何在 api 调用时使用 react-leaflet 添加多个标记?
- android - Android Room Database:数据库属性的线程安全使用
- rust - 将特征实现从 &T 推广到 AsRef 的生命周期
- python - 如何将一个函数用于 2 个数组?