首页 > 解决方案 > 如何获取特定 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 多条推文?

请帮助我,谢谢

标签: pythonjsonapitwittertweepy

解决方案


Twitter API 有请求限制。您正在使用的那个对应于 Twitter statuses/user_timeline端点。您可以为此端点获得的最大数量记录为 3,200。另请注意,在 15 分钟的窗口中存在最大请求数,这可能解释了为什么您只获得 2000 个请求,而不是最大请求数。以下是您可能感兴趣的一些观察结果:

  1. 文档说最大计数是 200。
  2. 有一个 include_rts(包括转推)参数可能会返回更多值。虽然它是 Twitter API 的一部分,但我看不到 Tweepy 在哪里记录了它。
  3. 您可以尝试Tweepy Cursors看看是否会带回更多项目。
  4. 由于有 15 分钟的限制,您可以暂停到下一个 15 分钟窗口继续。也就是说,我对您的用例知之甚少,不知道这是否实用。

推荐阅读