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

如何用Tweepy获取特定用户含指定关键词的全部推文?代码修复求助

修复无法获取全部目标推文的方案

1. 解决API时间范围与分页限制

Twitter(X)的标准搜索API默认只能抓取最近7天的推文,而且单次请求有返回数量上限。要获取更多内容,得通过分页循环逐步拉取更早的推文:

def get_tweet_keyword_from_user(keyword, user):
    all_tweets = []
    max_id = None
    while True:
        query = f"{keyword} from:{user}"
        # 每次请求最多取100条,用max_id控制下一页的起始位置
        tweets_cursor = tw.Cursor(api.search_tweets,
                                 q=query,
                                 tweet_mode='extended',
                                 count=100,
                                 max_id=max_id).items(100)
        current_batch = []
        for tweet in tweets_cursor:
            current_batch.append(tweet.full_text)
            # 更新max_id为当前推文ID减1,确保下一页取到更早的内容
            max_id = tweet.id - 1
        if not current_batch:
            break  # 没有更多推文时停止循环
        all_tweets.extend(current_batch)
        print(f"累计获取{len(all_tweets)}条推文")
    
    # 输出所有结果
    for text in all_tweets:
        print(text)
    return all_tweets

2. 检查API权限与额度

  • 免费版API有调用次数限制,超出后会减少返回结果,确认你的密钥额度足够
  • 如果目标用户设置了推文私有(受保护),你必须先关注对方并获得授权,否则无法抓取其内容

3. 优化关键词匹配规则

原代码的关键词是简单的全文匹配,要是需要更精准或灵活的匹配,调整查询语法:

  • 精确匹配短语:用双引号包裹关键词,比如query = f'"{keyword}" from:{user}'
  • 匹配多个变体:用OR连接,比如query = f"{keyword} OR {keyword.upper()} from:{user}"

4. 注意API版本差异

如果你用的是Tweepy v4+,要确认已经适配了X API的最新规则,部分旧接口参数可能已经失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:02:21