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

使用Twitter API批量获取多组推文ID及用户名对应全部回复的问题

基于Tweepy批量获取指定推文对应回复的实现方案

原代码逻辑说明

现有代码的核心逻辑是遍历绑定的<目标推文ID, 推文作者用户名>组合,搜索所有@对应作者的推文后匹配回复关联ID,筛选符合条件的回复存入数组,逻辑本身可正常运行,仅存在可优化空间:

  • 缺少异常捕获,API请求报错时会直接中断运行
  • 未提前初始化存储数组,空匹配场景下调用replies会抛出未定义错误
  • hasattr加属性判断的写法可以简化,减少冗余代码

优化后代码

import tweepy
import time

# 提前初始化回复存储数组
replies = []
# 单用户最多拉取的推文数量,标准API单页最大返回100条,可根据需求调整
numtweet = 100

try:
    for target_tweet_id, target_username in zip(tweet_ids, usernames):
        # 拼接搜索查询条件
        search_query = f"to:{target_username}"
        for tweet in tweepy.Cursor(api.search_tweets, q=search_query).items(numtweet):
            # 直接校验回复关联的推文ID是否匹配目标
            if getattr(tweet, 'in_reply_to_status_id_str', None) == target_tweet_id:
                replies.append(tweet)
        # 每查询完一个用户加1秒间隔,避免触发速率限制
        time.sleep(1)

    # 打印所有匹配到的回复内容
    for tweet in replies:
        print(tweet.text)
except tweepy.TweepyException as e:
    print(f"接口请求异常:{e}")

注意事项

  • API权限限制:Twitter标准免费API仅支持拉取最近7天内的公开推文,需要获取更早时间的回复需要申请学术或企业级API权限
  • 速率限制规避:如果批量查询的组合数量较多,可适当延长sleep的间隔时长,避免触发API的请求频次限制
  • 数据完整性:如果目标推文的回复量较大,可以调大numtweet的取值,避免漏掉匹配的回复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:24:05