今天需要下载一个,Figshare数据库的数据,在国内从这些网站下载数据速度很慢且经常掉线。一般来说,超过100Mb的文件登梯子也很难下载下来。so,找了一些教程,目前认为使用Google云和Google Colab方案非常可行,但是我在使用过程中,遇到了新的问题。进行修改调整后,新下载方案如下,记录分享一下。
整体思路是,通过Google Colab在线执行功能,将figshare数据转存至Google云盘,再下载。 主要流程是:
- 1)
- 2)在Colab中下载figshare数据,并转存至Google云盘;
- 3)
1、在谷歌云盘,按照图示操作,打开Google Colab并做关联。


2、进入Google Colab,挂载云盘路径。

from google.colab import drivedrive.mount('/content/drive')```
3、从figshare复制下载链接,在Google Colab运行下载代码
import requestsimport osfrom tqdm import tqdm# 创建会话(模拟真实浏览器)session = requests.Session()session.headers.update({'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Language': 'en-US,en;q=0.5','Referer': 'https://figshare.com/'})figshare_url = "xxxxxx替换自己的下载链接"# 保存路径(自定义)save_dir = "/content/drive/MyDrive/Figshare/UCE"os.makedirs(save_dir, exist_ok=True)save_path = os.path.join(save_dir, "文件名.rds")print("开始下载...")print(f"目标: {save_path}\n")try:# 关键:让 requests 自动跟随所有重定向 with session.get( figshare_url, stream=True, allow_redirects=True, # 自动跟随重定向 timeout=120 ) as response: response.raise_for_status()# 显示最终 URLprint(f"最终 URL: {response.url[:100]}...")# 获取文件信息 total_size = int(response.headers.get('content-length', 0)) content_type = response.headers.get('content-type', 'unknown')print(f"Content-Type: {content_type}")print(f"大小: {total_size / (1024*1024):.2f} MB\n")# 如果返回 HTML 且很小,说明不是真实文件if'html'in content_type.lower() and total_size < 50000:print("❌ 返回的是网页,不是文件")print(f"内容预览:\n{response.text[:300]}") raise Exception("未获取到文件下载链接")# 开始下载print("正在下载...") with open(save_path, 'wb') as f, tqdm( total=total_size, unit='iB', unit_scale=True, unit_divisor=1024 ) as bar:for chunk in response.iter_content(chunk_size=32768):if chunk: f.write(chunk) bar.update(len(chunk))# 验证 actual_size = os.path.getsize(save_path)print(f"\n{'='*60}")if actual_size > 100000:print(f"✅ 成功!文件大小: {actual_size/(1024*1024):.2f} MB")else:print(f"❌ 失败!文件只有 {actual_size} 字节")print(f"位置: {save_path}")print(f"{'='*60}")except Exception as e:print(f"\n❌ 错误: {e}")# 查看结果!ls -lh /content/drive/MyDrive/Figshare/UCE/
运行完成结果如下:

4、进入自己关联的谷歌云盘进行数据下载,现在可以看到下载速度就非常非常快了。
