如何通过curl或wget下载Google Drive url
有没有办法通过curl或wget下载可公开查看的谷歌硬盘url?例如,能够做以下事情:如何通过curl或wget下载Google Drive url,curl,google-drive-api,wget,Curl,Google Drive Api,Wget,有没有办法通过curl或wget下载可公开查看的谷歌硬盘url?例如,能够做以下事情: curl -O myfile.xls https://drive.google.com/uc?export=download&id=1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl 请注意,我希望在一个可公开查看的文件上执行此操作,而无需登录我的Google帐户(或让其他人登录他们的帐户等) 如果有帮助,我的cors标题如下: "kind": "drive#file", "id
curl -O myfile.xls https://drive.google.com/uc?export=download&id=1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl
请注意,我希望在一个可公开查看的文件上执行此操作,而无需登录我的Google帐户(或让其他人登录他们的帐户等)
如果有帮助,我的cors标题如下:
"kind": "drive#file",
"id": "1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl",
您需要使用
-L
开关进行curl-follow重定向,文件名的正确开关是-o
。您还应引用URL:
curl -L -o myfile.xls "https://drive.google.com/uc?export=download&id=0B4fk8L6brI_eX1U5Ui1Lb1FpVG8"
这个方法怎么样?当文件如此大时,Google返回下载文件的代码。您可以使用代码下载该文件。当使用curl下载如此大的文件时,您可以看到如下代码
<a id="uc-download-link" class="goog-inline-block jfk-button jfk-button-action" href="/uc?export=download&confirm=ABCD&id=### file ID ###">download</a>
#HttpOnly_.drive.google.com TRUE /uc TRUE ##### download_warning_##### ABCD
在本例中,“ABCD”是代码。为了从cookie中检索代码并下载文件,可以使用以下脚本
示例脚本:
如果这对你没有用,我很抱歉。我刚刚检查了@tanaike的答案,它就像一个符咒。但由@Martin Broadhurst提出并被topicstarter接受的解决方案却没有 因为谷歌显示了关于病毒扫描的警告,需要进行处理,所以需要soc脚本 我想投票支持@tanaike的答案,但没有足够的声誉来这么做:) 另外,对于那些不知道如何在google drive上获取文件的名称和ID的人,我想和大家分享一下这一简单的知识
0B4fk8L6brI_eX1U5Ui1Lb1FpVG8是文件id。最简单、最好的方法(使用真实的谷歌硬盘文件示例)
pip安装
- 命令-
pip安装gdown
- 下载链接:
https://drive.google.com/uc?export=download&id=0BwmD_VLjROrfTHk4NFg2SndKcjQ
id
URL参数0BwmD_VLjROrfTHk4NFg2SndKcjQ
gdown
gdown--id 0BwmD_VLjROrfTHk4NFg2SndKcjQ--output cnn_stories.tgz
TLDR:
gdown--id{gdrive\u file\u id}--output{file\u name}
命令行参数:
--id:Google驱动器文件id
--output:简单地输出文件名
wget--无检查证书-r'https://docs.google.com/uc?export=download&id=FILEID'-O目标文件名
自2019年11月18日起
为了使用wget从Google Drive下载文件,我使用了以下方法。对于这种方法,我们需要知道我们的文件大小是在较小还是较大的cat下。我无法计算出区分大小的确切数字,但我想大约是100MB。但是,您始终可以对您的文件使用上述两种方法中的任何一种,因为一种只适用于小文件,另一种适用于大文件
应遵循的基本步骤
步骤1:将您的文件共享为“任何有互联网的人都可以访问”。这可以通过右键单击文件-->单击共享选项-->单击高级单选按钮-->将访问权限更改为“网上公共”来实现
步骤2保存并单击“完成”
第3步再次右键单击文件并单击“获取可共享链接”。这将把链接复制到剪贴板
步骤4将?id=之后的所有内容复制到末尾,并将其保存到记事本文件中。这是您的文件ID,在下面使用
步骤4:在执行上述常见步骤后,根据文件大小执行以下步骤
小文件
步骤1使用命令:
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILE_ID' -O FILE_NAME_ALONG_WITH_SUFFIX
文件\u ID应从上述步骤复制,文件\u名称\u以及带有\u后缀的\u是您希望它保存在系统/服务器上的文件的名称。请注意,不要忘记添加后缀(.zip、.txt等)
步骤2运行命令。它可能会显示“将不应用HST”为错误,但其为ok。您的文件将被复制
大文件
步骤1使用命令
wget --no-check-certificate --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=FILE_ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILE_ID" -O FILE_NAME_ALONG_WITH_SUFFIX && rm -rf /tmp/cookies.txt
更改两个位置的文件\u ID和一次带有\u后缀的文件\u名称\u
第2步执行命令,它可能会给出与上述相同的错误,但这没关系
希望对您有所帮助。无需安装任何外部工具
--output
)标志要使wget成功地处理大文件,请使用请求下载确认的链接 首先从具有ID的google drive链接获取信息。在您的示例中,ID为1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl 然后获取要下载的文件名 然后使用以下命令:“wget--加载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文件名和&rm-rf/tmp/cookies.txt”“” 并将FILEID替换为从链接获得的ID,将FILENAME变量替换为文件名
对于任何参考,请耐心地查看此线程。您可以获得许多有用的方法。谢谢,这适用于小文件。但是,如果文件较大,使用上面的代码,我会得到这样的信息:MyFile.csv(711M)太大,Google无法扫描病毒。你还会喜欢吗
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILE_ID' -O FILE_NAME_ALONG_WITH_SUFFIX
wget --no-check-certificate --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=FILE_ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILE_ID" -O FILE_NAME_ALONG_WITH_SUFFIX && rm -rf /tmp/cookies.txt