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

如何使用Python的Requests库从公开Sharepoint共享链接下载文本文件

解决方案

1. 可以直接用Requests库完成下载

出现该问题的本质是没有维持SharePoint匿名访问所需的会话Cookie,单次GET请求无法保留跳转过程中下发的匿名授权凭证,所以被重定向到登录页。修改代码如下:

import requests

# 注意原URL末尾的空格要删除
url = "https://<abc>-my.sharepoint.com/personal/gamma_<abc>/_layouts/15/download.aspx?UniqueId=a0db276e%2Ddf75%2D49b7%2Db671%2D1c49e365ef3f"

hdr = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8'
}

# 用Session维持会话,自动保存跳转过程中下发的匿名授权Cookie
with requests.Session() as sess:
    # 允许重定向,自动走完匿名授权流程
    resp = sess.get(url, headers=hdr, allow_redirects=True)
    resp.raise_for_status()
    # 写入文件
    with open('c:/users/scott/onedrive/desktop/gamma.las', 'wb') as f:
        f.write(resp.content)

如果运行后还是返回登录页,可按以下步骤调整:

  • 打开浏览器无痕窗口访问该下载链接,在下载触发时打开浏览器开发者工具的「网络」标签,找到对应download.aspx请求的Cookie字段,把完整Cookie复制到请求头的Cookie参数中即可正常下载。Cookie的有效期通常有数天,到期后重新抓取一次即可。

2. 无需用户凭证无法直接调用SharePoint REST API

SharePoint REST API的所有接口默认要求身份验证,即便是公开共享的内容,调用接口也需要先获取共享链接对应的匿名访问令牌,获取流程比直接模拟浏览器下载更复杂,没有必要采用该方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:24:05