Wget过去"感染病毒" Google云端硬盘上的屏幕

时间:2018-01-22 19:27:53

标签: google-drive-api wget

所以我一直在尝试下载我上传的Google云端硬盘文件。很遗憾,Google云端硬盘错误地将文件标记为病毒,因此wget无法获得直接下载链接。

我尝试的事情:

  • 使用某人制作的gdrive.pl fie,但我在Windows上,并且/tmp/cookies.txt不存在。

  • 正在执行wget --no-check-certificate https://docs.google.com/uc?export=download&id=FILEID -O FILENAME,但它说400 Bad Request

  • 使用https://docs.google.com/uc?export=download&id=ID,但由于download infected file警告而失败。

有没有人有任何建议可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

根据我在https://medium.com/@acpanjan/download-google-drive-files-using-wget-3c2c025a8b99上找到的起点,这就是我能做的:

编辑 我注意到您说的是Windows,因此带有sed的命令在Windows中无法正常运行-我将在下面为Windows设置不使用sed的步骤

您当然首先要共享文件,然后从Google驱动器上的共享链接获取文件ID。然后:

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

使用共享文件链接中的ID替换SHARE_LINK_ID。用所需的输出文件名替换YOUR_FILENAME。

这将尝试下载文件并获取有关文件中潜在病毒的警告消息的html。它会使用Cookie,因为您需要使用相同的会话ID进行后续下载并带有确认代码。

然后从该响应获取生成的确认代码,并将其写入临时文件。

然后我执行另一个wget,将确认代码添加到查询字符串中以下载文件,并使用保存的cookie使确认代码适用于保存的会话。

最有可能将其处理为脚本,并传递共享链接ID的参数以使其更有用。

对于Windows(无sed)

 wget --save-cookies %TMP%/cookies.txt --keep-session-cookies --no-check-certificate "https://docs.google.com/uc?export=download&id=SHARE_LINK_ID" -O %TMP%/confirm.txt

下载确认html。

 notepad %TMP%/confirm.txt

在记事本中打开%TMP%/ confirm.txt以获取确认代码字符串(CTRL + F查找“ confirm =“并在此之后获取代码)。在下面的命令行中将其替换(以及放入所需的文件名和来自Google驱动器的共享链接ID)

 wget --load-cookies %TMP%/cookies.txt --no-check-certificate "https://docs.google.com/uc?export=download&confirm=CONFIRM_CODE&id=SHARE_LINK_ID" -O YOUR_FILENAME

删除临时文件:

 del %TMP%/cookies.txt %TMP%/confirm.txt