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

如何通过Python编程下载公开可访问的Google Drive文件

公开可访问Google Drive文件无授权Python下载方案

不需要申请Google API权限、不需要配置OAuth凭证,只要文件本身设置为「知晓链接即可访问」,就能直接模拟浏览器无痕模式的请求逻辑完成下载,你提供的示例文件可通过下述方法正常下载。

核心逻辑

官方Google Drive API默认要求身份校验,完全不适合公开无授权场景,直接走公开网页的下载通道即可:

  • 从分享链接中提取文件ID,带resourcekey的旧版分享链接必须同步提取该参数,否则会返回403
  • 构造公开下载入口地址:https://drive.google.com/uc?export=download
  • 小于100MB的文件直接请求即可返回文件流;大文件会触发Google的病毒扫描提示页,需要从页面中提取confirm校验令牌,带上令牌二次请求即可拿到真实文件内容

方法1:基于requests的轻量实现

仅依赖requests库,适合不想引入额外工具包的场景,先安装依赖:
pip install requests

完整代码:

import re
import requests

def download_public_gdrive(file_id: str, save_path: str, resource_key: str = None):
    download_base = "https://drive.google.com/uc?export=download"
    req_params = {"id": file_id}
    if resource_key:
        req_params["resourcekey"] = resource_key

    sess = requests.Session()
    # 首次请求获取校验令牌
    first_resp = sess.get(download_base, params=req_params, stream=True)
    # 匹配大文件场景的confirm参数
    confirm_token = re.search(r'name="confirm" value="([0-9A-Za-z_-]+)"', first_resp.text)
    if confirm_token:
        req_params["confirm"] = confirm_token.group(1)
        first_resp = sess.get(download_base, params=req_params, stream=True)

    # 分块写入文件,避免大文件占用过多内存
    with open(save_path, "wb") as f:
        for chunk in first_resp.iter_content(chunk_size=1024*32):
            if chunk:
                f.write(chunk)

# 针对你提供的示例文件的调用代码
if __name__ == "__main__":
    # 从示例链接提取的文件ID和resourcekey
    FILE_ID = "0ByZjGXodIlspWmpBcUhvenVQa1k"
    RESOURCE_KEY = "0-0EDZ0S61PjdzFLa6nWo3yw"
    download_public_gdrive(FILE_ID, "downloaded_file", RESOURCE_KEY)

方法2:使用gdown库(稳定性更高)

gdown是专门处理公开Google Drive文件下载的工具,已经适配了所有已知的链接格式、校验令牌提取、限流规避等边界情况,不用自己写正则匹配逻辑,适合生产场景使用。
先安装依赖:
pip install gdown

完整代码,直接传入分享链接即可,不需要手动拆分ID和参数:

import gdown

share_url = "https://drive.google.com/file/d/0ByZjGXodIlspWmpBcUhvenVQa1k/view?resourcekey=0-0EDZ0S61PjdzFLa6nWo3yw"
gdown.download(url=share_url, output="downloaded_file", fuzzy=True)

参数fuzzy=True会自动识别不同格式的Drive分享链接,包括预览页链接、短分享链接、直链等,不需要手动做字符串处理。

常见问题说明

  • 返回403错误:首先确认文件确实开启了公开访问权限,旧版带resourcekey的链接不能漏传该参数,否则即使文件公开也会被拦截
  • 下载得到的是HTML网页而非目标文件:基本是大文件场景下没有正确提取confirm校验令牌,直接换gdown实现即可,不用自己反复调整匹配规则
  • 大文件下载速度慢:可以调大分块写入的尺寸,gdown默认做了下载优化,速度和浏览器端下载基本一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:27:24