首页/实用指南/科研数据

Zenodo 数据集怎么下载?大文件断点续传与批量下载方法

Zenodo 的公开数据可以直接从网页下载。遇到大文件或一个 Record 包含大量文件时,可以使用 curl、wget 或 zenodo-get。

1. 直接从网页下载

Zenodo 数据页面通常类似 https://zenodo.org/records/RECORD_ID。进入页面后,在 Files 区域可以看到文件名和大小,直接点击对应的 Download

2. 使用 curl 下载单个大文件

bash
curl -L \
  -o data.tar.gz \
  "https://zenodo.org/records/12345678/files/data.tar.gz?download=1"

把 Record ID 和文件名替换成实际内容。

3. 下载中断后继续

bash
curl -L -C - \
  -o data.tar.gz \
  "https://zenodo.org/records/12345678/files/data.tar.gz?download=1"

-C - 表示从已经下载的位置继续。需要自动重试时:

bash
curl -L --fail --retry 10 -C - \
  -o data.tar.gz \
  "https://zenodo.org/records/12345678/files/data.tar.gz?download=1"

4. 使用 wget 下载

bash
wget -c \
  "https://zenodo.org/records/12345678/files/data.tar.gz?download=1" \
  -O data.tar.gz

5. 文件很多时使用 zenodo-get

使用 zenodo-get 前需要 Python;尚未安装时,先参考 Python 3 安装与 pip 镜像配置

Windows

powershell
python -m pip install -U zenodo-get

macOS / Linux

bash
python3 -m pip install -U zenodo-get

按 Record ID 下载:

bash
zenodo_get 12345678

也可以使用 DOI:

bash
zenodo_get -d 10.5281/zenodo.12345678

6. 保存到指定目录

bash
zenodo_get 12345678 -o ./zenodo-data

7. 只下载指定类型的文件

bash
zenodo_get 12345678 -g "*.zip" -o ./data

例如只下载 CSV:

bash
zenodo_get 12345678 -g "*.csv" -o ./data

8. 获取全部文件的下载地址

bash
zenodo_get 12345678 -w urls.txt
wget -c -i urls.txt

9. 校验下载文件

bash
zenodo_get 12345678 -m

Linux 可以使用:

bash
md5sum -c md5sums.txt

10. 文件显示 Restricted

如果文件显示 Restricted,需要先通过页面上的 Request access 申请访问权限。获得授权后再下载。

11. 常见下载问题

下载到一半中断

bash
curl -L -C - -o FILE_NAME "FILE_URL"

或者:

bash
wget -c "FILE_URL"

一个 Record 文件太多

bash
zenodo_get RECORD_ID

只需要一种文件

bash
zenodo_get RECORD_ID -g "*.zip"

返回 403

检查文件是否为 Restricted,以及当前账号是否具有访问权限。

返回 404

检查 Record ID 和文件名。最简单的方法是重新打开对应 Zenodo 页面,在 Files 中确认文件。

大量文件仍无法稳定获取时

如果公开的 Zenodo Record 可以正常访问,但大文件或大量文件仍无法完整下载,可以将 Zenodo Record 链接或 DOI 提交给 DataCrosslane 确认。