Bootstrap

如何解决谷歌云盘wget无法下载大文件的问题

如何解决谷歌云盘wget无法下载大文件的问题

wget指令

最近在用谷歌云盘下载较大的数据集的时候,发现常常因为下载文件过大,无法直接用wget下载,多方查找资料之后确定了一个可行的路径,分享给大家,也作为记录方便自己日后查阅。

如果用代码块的形式打出来会导致指令无法在一屏内看全,所以直接按照正常的文字打出。

大文件

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_]+)./\1\n/p’)&id=FILEID” -O FILENAME && rm -rf /tmp/cookies.txt

注意里面有两个参数:
FILENAME:存储名称,即在你本地下载文件之后该文件将会被命名为FILENAME

FILEID:文件代码,每个谷歌云盘链接都会有一串字符串,例如对于谷歌网盘链接:

https://drive.google.com/file/d/1UibyVC_C2hoT_XEw15gPEwPW4yFyJFeOEA/view?usp=sharing

或者

https://drive.google.com/u/0/open?id=0B-Fin8UxrD6POTBsR2d2T3MzTjg

里面的 1UibyVC_C2hoT_XEw15gPEwPW4yFyJFeOEA0B-Fin8UxrD6POTBsR2d2T3MzTjg 这段代码就是我们需要的信息。

例如用上面第一个链接作为例子的指令为:

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=1UibyVC_C2hoT_XEw15gPEwPW4yFyJFeOEA’ -O- | sed -rn ‘s/.confirm=([0-9A-Za-z_]+)./\1\n/p’)&id=FILEID” -O downloadfile && rm -rf /tmp/cookies.txt

即可在当前路径下载文件并命名为downloadfile

小文件

可以采用 wget+谷歌云盘链接的方式,如果无法下载,则可采用下面的方法:

wget --no-check-certificate ‘https://docs.google.com/uc?export=download&id=FILEID’ -O FILENAME

;