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

Youtube Data API V3获取评论时403错误处理异常求助

解决YouTube Data API V3评论爬取的403错误捕获与重复处理问题

一、先搞定403错误捕获失败的问题

你抓不到错误,大概率是异常类型没导对,或者错误解析逻辑走了弯路。Google API抛出的HttpError是googleapiclient.errors下的,不是普通请求库的HTTPError。

修正步骤:

  1. 先导入正确的异常类:
from googleapiclient.errors import HttpError
import json
  1. 调整try-except块的错误解析逻辑,直接从错误响应里拿原因:
try:
    # 你的获取评论代码,比如:
    comment_response = youtube.commentThreads().list(
        part="snippet",
        videoId=video_id,
        maxResults=100
    ).execute()
    # 处理评论的逻辑...
except HttpError as e:
    # 解析API返回的错误JSON
    error_data = json.loads(e.content.decode())
    error_reason = error_data["error"]["errors"][0]["reason"]
    
    # 精准匹配"评论禁用"的错误
    if error_reason == "commentsDisabled":
        print(f"⚠️ 视频 {video_id} 评论已禁用,跳过处理")
        # 这里一定要标记为已处理
        processed_ids.add(video_id)
        continue
    # 其他403错误(比如配额用完、权限不足),可以选择抛出或单独处理
    else:
        print(f"❌ 视频 {video_id} 出现其他403错误:{error_reason}")
        # 如果不想中断脚本,可以continue;如果要终止就raise
        # raise

二、解决videoId重复处理的问题

重复处理说明你标记已处理的逻辑没生效,要么是没持久化存储,要么是每次脚本重启后丢失了记录。

修正方案:

  1. 用本地文件持久化已处理的videoId,脚本启动时先加载:
# 初始化已处理ID集合
processed_ids = set()

# 启动时读取已处理记录
try:
    with open("processed_video_ids.txt", "r", encoding="utf-8") as f:
        for line in f:
            video_id = line.strip()
            if video_id:
                processed_ids.add(video_id)
except FileNotFoundError:
    # 文件不存在就新建,不用管
    pass

# 遍历视频列表时,先判断是否已处理
for video in all_videos:
    video_id = video["id"]["videoId"]
    if video_id in processed_ids:
        print(f"✅ 视频 {video_id} 已处理过,直接跳过")
        continue
    
    # 这里执行获取评论的逻辑(包含上面的try-except)
    
    # 处理完(包括跳过的禁用视频),写入文件
    with open("processed_video_ids.txt", "a", encoding="utf-8") as f:
        f.write(f"{video_id}\n")

三、关键注意点

  • 别用except Exception这种宽泛捕获,会掩盖其他真正的bug(比如API调用参数错误)
  • 每次处理完一个videoId(不管成功还是跳过),都要写入本地文件,避免脚本中断后重启重复处理
  • 如果遇到quotaExceeded(配额用完)的错误,建议直接终止脚本,不然会一直触发错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:05:05