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

如何用Python自动下载“1.3公里电子自旋无漏洞贝尔不等式违反”实验data.zip

解决Python下载data.zip的问题

直接使用requests.get()失败通常是因为服务器会验证请求的用户代理(User-Agent),拒绝非浏览器发起的请求。此外,你需要将响应内容写入本地文件才能完成下载。以下是可行的代码方案:

完整代码示例

import requests

# 定义目标下载链接和保存路径
url = "https://data.4tu.nl/ndownloader/files/24056582"
save_path = "./data.zip"

# 模拟浏览器的请求头,避免被服务器拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"
}

# 发起请求并保存文件
response = requests.get(url, headers=headers, allow_redirects=True)
response.raise_for_status()  # 检查请求是否成功

with open(save_path, "wb") as f:
    f.write(response.content)

print(f"文件已成功下载到 {save_path}")

关键说明

  • 添加User-Agent头:服务器通过这个字段识别请求来源,模拟浏览器的User-Agent可以绕过基础的反爬拦截。
  • allow_redirects=True:确保跟随跳转链接(如果有的话),保证最终获取到文件内容。
  • response.raise_for_status():如果请求返回错误状态码(比如403、404),会抛出异常,方便排查问题。
  • 二进制写入:使用"wb"模式打开文件,因为zip文件是二进制格式,避免内容损坏。

如果遇到大文件下载的情况,可改用流式写入,避免一次性加载整个文件到内存:

import requests

url = "https://data.4tu.nl/ndownloader/files/24056582"
save_path = "./data.zip"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"
}

with requests.get(url, headers=headers, stream=True) as r:
    r.raise_for_status()
    with open(save_path, "wb") as f:
        for chunk in r.iter_content(chunk_size=8192):
            f.write(chunk)

print(f"大文件已成功下载到 {save_path}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:10:23