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

如何使用Python 3无需认证从SharePoint下载公开文件

Python3 下载SharePoint公开无认证文件的方法

SharePoint的公开共享链接(如你提供的https://XXXX.sharepoint.com/:x:/s/YYYY/ZZZZ?e=KKKK)默认是网页预览链接,无法直接用下载工具获取文件。你需要先将其转换为直接下载链接,再用Python完成下载,具体步骤如下:

1. 转换共享链接为直接下载链接

将原链接中的:x:替换为:u:,并在链接末尾添加&download=1,即可得到直接下载地址:

  • 原链接:https://XXXX.sharepoint.com/:x:/s/YYYY/ZZZZ?e=KKKK
  • 转换后:https://XXXX.sharepoint.com/:u:/s/YYYY/ZZZZ?e=KKKK&download=1

2. Python实现下载

以下提供两种无需额外认证的下载方案,按需选择:

方案一:使用requests库(推荐)

如果未安装requests,先执行安装命令:

pip install requests

下载代码示例:

import requests

# 替换为你的SharePoint公开共享链接
sharepoint_url = "https://XXXX.sharepoint.com/:x:/s/YYYY/ZZZZ?e=KKKK"
# 转换为直接下载链接
download_url = sharepoint_url.replace(":x:", ":u:") + "&download=1"

# 流式下载大文件(避免内存占用过高)
try:
    response = requests.get(download_url, stream=True)
    response.raise_for_status()  # 捕获请求异常

    # 自定义保存的文件名(注意替换为对应文件后缀)
    with open("downloaded_file.pdf", "wb") as file:
        for chunk in response.iter_content(chunk_size=8192):
            file.write(chunk)
    print("文件下载完成")
except requests.exceptions.RequestException as e:
    print(f"下载失败:{e}")

方案二:使用Python内置urllib库

无需额外安装依赖,直接使用:

import urllib.request

sharepoint_url = "https://XXXX.sharepoint.com/:x:/s/YYYY/ZZZZ?e=KKKK"
download_url = sharepoint_url.replace(":x:", ":u:") + "&download=1"

try:
    # 下载并保存文件(第二个参数为保存的文件名)
    urllib.request.urlretrieve(download_url, "downloaded_file.pdf")
    print("文件下载完成")
except Exception as e:
    print(f"下载失败:{e}")

注意事项

  • 若转换后的链接仍无法下载,需确认该文件确实设置为完全公开访问(无组织或用户限制),否则仍需认证才能获取。
  • 保存文件名需对应文件实际格式(如.pdf、.docx等),可根据原文件类型调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:30:52