使用 wget 从 google 驱动器下载文件

Download a file from google drive using wget

我想将可在此地址查看的文件下载到 linux 远程:

https://drive.google.com/file/d/0Bz7KyqmuGsilT0J5dmRCM0ROVHc/view?usp=sharing

我希望我能用 wget 做到这一点。

我试过了

wget https://drive.google.com/file/d/0Bz7KyqmuGsilT0J5dmRCM0ROVHc/vgg16_weights.h5

响应是 404。

是否可以 wget 一个 google 驱动器文件?如果有,提供的路径是什么?如果没有,是否有任何替代方案(bash 或其他),这样我就可以避免将文件下载到本地并将其传输到远程?

将您的文件 ID 插入此 URL (https://drive.google.com/uc?export=download&id=),然后用引号将 URL 括起来,这样 Bash 就不会误解 &,像这样:

wget "https://drive.google.com/uc?export=download&id=0Bz7KyqmuGsilT0J5dmRCM0ROVHc"

引用here.


下载大文件时,Google Drive 添加了一个安全警告,会破坏上面的脚本。在这种情况下,您可以使用以下方式下载文件:

wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\n/p')&id=FILEID" -O FILENAME && rm -rf /tmp/cookies.txt

(脚本取自 here

首先点击右上角的分享按钮,设置权限allow anyone with the link can view

点击左下角文件->下载为->PDF文档(.pdf),开始浏览器下载。

在下载器中找到URL,chrome在chrome://downloads/中。

在我写这个答案的时候 URL link 是 https://docs.google.com/document/export?format=pdf&id=xxx&token=xxx&includes_info_params=true

我能够通过 wget 下载为 pdf wget -O xxx.pdf "https://docs.google.com/document/export?format=pdf&id=xxx"

我找到的下载大文件最快捷方式:

git clone https://github.com/chentinghao/download_google_drive.git
cd download_google_drive/
python download_gdrive.py FILE_ID DESTINATION_PATH

只是查看权限,需要FILE_ID和DESTINATION_PATH(包括文件名)。它从 November/12/2019 开始工作,并且已经 for more than a year

另一个解决方案是googleapiclient。它使您能够自动化 downloading/uploading 具有其 ID 的私有文件。

注意:还要确保文件是公开共享的,而不是与群组或组织内部共享的

这对我有用: https://www.matthuisman.nz/2019/01/download-google-drive-files-wget-curl.html Google 如果文件大于 100MB 则显示警告,因此这种情况应单独处理。作者展示了如何做到这一点,并提供了自动化脚本:https://github.com/matthuisman/gdrivedl