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

使用Tweepy编写推特随机评论挑选脚本遇AttributeError问题求助

问题解决思路及修正代码

首先,你遇到的几个问题根源如下:

  • Tweepy的API对象没有comments方法,这是第一个错误的直接原因;旧版search方法已被废弃,当前对应方法为search_tweets;
  • 免费版Twitter API权限不足以获取推文评论,必须申请**Elevated(进阶)**权限才能使用搜索接口获取回复。

修正后的代码

import random
import tweepy

# 认证信息
consumer_key = 'xxx'
consumer_secret = 'xxx'
access_token = 'xxx'
access_token_secret = 'xxx'

# 修正认证方式:OAuthHandler只传consumer密钥,再单独设置access token
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
# 开启速率限制等待,避免触发API限制
api = tweepy.API(auth, wait_on_rate_limit=True)

def get_tweet_replies(tweet_id, tweet_author_username):
    """获取指定推文的所有评论"""
    replies = []
    # 搜索条件:回复目标作者+针对目标推文的回复
    search_query = f"to:{tweet_author_username} in_reply_to_tweet_id:{tweet_id}"
    # 使用Cursor遍历所有结果,tweet_mode='extended'获取完整评论内容
    for tweet in tweepy.Cursor(api.search_tweets, q=search_query, tweet_mode='extended').items():
        # 确保是针对目标推文的回复
        if tweet.in_reply_to_status_id_str == tweet_id:
            replies.append(tweet)
    return replies

# 替换为实际推文ID和原推文作者的用户名(不带@)
tweet_id = "xxx"
tweet_author = "xxx"
# 替换为要过滤的用户名(不带@)
target_user = "xxx"

# 获取所有评论
comments = get_tweet_replies(tweet_id, tweet_author)
# 过滤指定用户的评论(转小写避免大小写匹配问题)
filtered_comments = [c for c in comments if c.user.screen_name.lower() == target_user.lower()]

if filtered_comments:
    winner = random.choice(filtered_comments)
    # 用full_text获取完整评论(因启用了tweet_mode='extended')
    print(f"Der Gewinner ist @{winner.user.screen_name} mit dem Kommentar: {winner.full_text}")
else:
    print("Keine Kommentare Gefunden.")

关键注意事项

  • 权限要求:必须在Twitter开发者平台申请Elevated权限,免费版API无法调用search_tweets接口获取推文回复,会返回权限不足错误;
  • 认证格式:原代码中OAuthHandler参数传递错误,正确方式是先传入consumer密钥,再通过set_access_token设置access token;
  • 评论完整性:启用tweet_mode='extended'才能获取超过140字符的完整评论,否则会拿到截断文本;
  • 匹配容错:过滤用户名时转成小写比较,避免因大小写不一致漏判目标用户的评论。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:11:27