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

使用Python下载在线课程视频触发HTTP Error 403: Forbidden如何解决

解决方案

核心问题说明

  • 代码存在笔误:下载目标为视频文件,但存储时硬编码了.pdf后缀,会导致下载后的文件无法正常作为视频播放
  • HTTP Error 403: Forbidden是平台资源权限校验不通过导致,主要两个诱因:
    1. 请求仅携带了User-Agent标识,未携带登录平台后获得的身份校验Cookie,柏林工业大学ISIS平台的课程视频仅对已登录的选课用户开放访问
    2. 缺失Referer请求头,平台视频服务会校验请求是否来自ISIS站内的合法课程页面,无合法Referer会直接拦截访问

修复实现

推荐优先使用requests库替代原生urllib,请求配置更简洁,Cookie管理更方便。如果你已经通过Selenium完成了平台登录,可以直接从Selenium实例中导出有效Cookie加入请求,参考代码如下:

import requests

def download_video(download_url, filename, selenium_driver):
    # 从Selenium中导出当前登录态的Cookie
    cookies = {cookie['name']: cookie['value'] for cookie in selenium_driver.get_cookies()}
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',
        # 替换为你实际访问的课程详情页地址作为Referer
        'Referer': 'https://isis.tu-berlin.de/'
    }
    # 发送带身份凭证的请求
    response = requests.get(download_url, headers=headers, cookies=cookies, timeout=120)
    # 用with上下文管理器自动处理文件关闭,避免资源泄漏
    with open(f"{filename}.mp4", 'wb') as f:
        f.write(response.content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:27:02