You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于可获取更多推文的Twitter API咨询:Tweepy调用api.search接口存在数量限制问题

解决Twitter API获取推文数量受限的问题

嘿,这个情况我之前开发时也遇到过!其实不是Tweepy的上限,而是你用的Twitter API v1.1标准搜索端点本身就有单请求最多100条推文的限制,哪怕你把count设成1000,API也只会返回它允许的最大数量。

下面给你几个能获取更多推文的方案:

1. 切换到Twitter API v2(推荐)

Twitter API v2的搜索能力比v1.1强很多,而且Tweepy完全支持调用v2接口:

  • 近期推文搜索:用/2/tweets/search/recent端点,单请求最多返回100条,但可以通过分页(pagination)批量获取最多7天内的推文,普通开发者账号的速率限制是每15分钟450次请求,算下来15分钟最多能拿45000条。
    示例代码(Tweepy v2):
    import tweepy
    
    client = tweepy.Client(bearer_token="你的Bearer Token")
    # 第一次请求
    response = client.search_recent_tweets(query="sunny", max_results=100)
    tweets = response.data
    # 处理分页
    next_token = response.meta.get('next_token')
    while next_token:
        response = client.search_recent_tweets(query="sunny", max_results=100, next_token=next_token)
        tweets.extend(response.data)
        next_token = response.meta.get('next_token')
        # 可以加个判断,比如拿到1000条就停止
        if len(tweets) >= 1000:
            break
    
  • 全历史推文搜索:如果需要获取超过7天的历史推文,得用/2/tweets/search/all端点,但这个需要申请学术研究访问权限,拿到权限后可以检索Twitter的全量历史推文。

2. 在v1.1中使用分页获取更多

如果你暂时不想切换到v2,也可以用Tweepy的Cursor来自动处理v1.1搜索的分页,绕过单请求100条的限制:

import tweepy

auth = tweepy.OAuthHandler("consumer_key", "consumer_secret")
auth.set_access_token("access_token", "access_token_secret")
api = tweepy.API(auth)

# 用Cursor获取最多1000条推文,自动处理分页
tweets = []
for tweet in tweepy.Cursor(api.search, q='sunny', count=100).items(1000):
    tweets.append(tweet)

不过要注意,v1.1的标准搜索只能返回最近7天的推文,而且速率限制比v2更严格(每15分钟180次请求)。

3. 实时流API(适合持续收集)

如果你的需求是实时获取“sunny”相关的推文,而不是回溯历史,可以用Twitter的流API:

  • v1.1的statuses/filter端点,或者v2的/2/tweets/search/stream端点,都可以持续接收符合条件的推文,只要你的程序保持运行,就能不断获取新发布的内容,没有单次请求的数量限制(但要遵守速率限制)。

最后提醒一下,不管用哪个API,都要注意Twitter的速率限制规则,避免因为请求过于频繁被限流甚至封号哦~

内容的提问来源于stack exchange,提问作者palapara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 11:12:45