使用 wget 下载 ZIP 文件
Using wget to download a ZIP file
我在为 OVH 托管的 Debian 7.0 VPS 服务器使用 wget 时遇到问题。
我正在尝试从 MediaFire 下载 ZIP 文件,当我通过 SSH 连接时,我输入了
wget http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.zip
那么,这是我的输出,
--2016-03-07 20:17:52-- http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbd bxawbwd/Vhalar-GGJ16.zip
Resolving download1472.mediafire.com (download1472.mediafire.com)... 205.196.123 .160
Connecting to download1472.mediafire.com (download1472.mediafire.com)|205.196.12 3.160|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://www.mediafire.com/?dgx7zbbdbxawbwd [following]
--2016-03-07 20:17:52-- http://www.mediafire.com/?dgx7zbbdbxawbwd
Resolving www.mediafire.com (www.mediafire.com)... 205.196.120.6, 205.196.120.8
Connecting to www.mediafire.com (www.mediafire.com)|205.196.120.6|:80... connect ed.
HTTP request sent, awaiting response... 301
Location: /download/dgx7zbbdbxawbwd/Vhalar-GGJ16.zip [following]
--2016-03-07 20:17:52-- http://www.mediafire.com/download/dgx7zbbdbxawbwd/Vhala r-GGJ16.zip
Connecting to www.mediafire.com (www.mediafire.com)|205.196.120.6|:80... connect ed.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `Vhalar-GGJ16.zip'
[ <=> ] 94,265 440K/s in 0.2s
2016-03-07 20:17:52 (440 KB/s) - `Vhalar-GGJ16.zip' saved [94265]
下载时间不到 1 秒,而且是一个 280MB 的 zip 文件。此外,它似乎在说“440 KB/s”,而这个数学并没有加起来。
我很困惑为什么我不能通过 SSH 下载这个 zip 文件到我的服务器,而是先下载到我的电脑,然后再重新上传到服务器。
有人看到我的命令有问题吗?
查看您在类似vi 中下载的94kb 文件的内容。很有可能它不是一个 zip 文件,而是一个 html 文件,告诉您出了什么问题,以及您需要做什么才能下载该文件。
浏览器会知道这一点(mime 类型会告诉它它正在被提供 HTML,并且它会向您显示而不是下载它)。
这很可能是 Mediafire 为防止自动下载其文件而采取的措施。欺骗 user-agent header 可能会有帮助,但不太可能。
当您使用 wget 下载该 zip 文件时,您所做的只是下载该 zip 文件所在的 html 页面。您可以看到这一点,因为如果您重做命令以输出到 html 文件,如下所示:
wget http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.html
然后在您选择的 Web 浏览器中打开它,您将看到那个 link 的精美 html 页面,上面有 mediafire 下载按钮。
这完全是因为 mediafire 希望您在下载验证码之前验证您是人类。尝试执行验证码然后发出命令:
wget http://download1472.mediafire.com/gxnd316uacsg/dgx7zbbdbxawbwd/Vhalar-GGJ16.zip
它会起作用。
如果您尚未在尝试从中下载的任何计算机上完成验证码,则需要完成。这就是验证码最初的样子。完成并单击 "Authorize Download" 后,您将可以自由地从服务器获取文件。
如果一切都失败了,请将其最初下载到您的计算机上,然后使用 scp
命令将其传输过来。
对于使用 wget 下载文件的任何人来说,这只是一个提示,但是 URL 在文件名后的末尾有一个代理字符串(例如 ?This_is_a_query_string_sample_&_123545_&
),即 URL 的形式为:
http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.html?This_is_a_query_string_sample_&_123545_&
在这种情况下,在使用 wget 时始终使用双引号(因为 &
在 shell 环境中具有特殊含义)
wget "http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.html?This_is_a_query_string_sample_&_123545_&"
我在为 OVH 托管的 Debian 7.0 VPS 服务器使用 wget 时遇到问题。
我正在尝试从 MediaFire 下载 ZIP 文件,当我通过 SSH 连接时,我输入了
wget http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.zip
那么,这是我的输出,
--2016-03-07 20:17:52-- http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbd bxawbwd/Vhalar-GGJ16.zip
Resolving download1472.mediafire.com (download1472.mediafire.com)... 205.196.123 .160
Connecting to download1472.mediafire.com (download1472.mediafire.com)|205.196.12 3.160|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://www.mediafire.com/?dgx7zbbdbxawbwd [following]
--2016-03-07 20:17:52-- http://www.mediafire.com/?dgx7zbbdbxawbwd
Resolving www.mediafire.com (www.mediafire.com)... 205.196.120.6, 205.196.120.8
Connecting to www.mediafire.com (www.mediafire.com)|205.196.120.6|:80... connect ed.
HTTP request sent, awaiting response... 301
Location: /download/dgx7zbbdbxawbwd/Vhalar-GGJ16.zip [following]
--2016-03-07 20:17:52-- http://www.mediafire.com/download/dgx7zbbdbxawbwd/Vhala r-GGJ16.zip
Connecting to www.mediafire.com (www.mediafire.com)|205.196.120.6|:80... connect ed.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `Vhalar-GGJ16.zip'
[ <=> ] 94,265 440K/s in 0.2s
2016-03-07 20:17:52 (440 KB/s) - `Vhalar-GGJ16.zip' saved [94265]
下载时间不到 1 秒,而且是一个 280MB 的 zip 文件。此外,它似乎在说“440 KB/s”,而这个数学并没有加起来。
我很困惑为什么我不能通过 SSH 下载这个 zip 文件到我的服务器,而是先下载到我的电脑,然后再重新上传到服务器。
有人看到我的命令有问题吗?
查看您在类似vi 中下载的94kb 文件的内容。很有可能它不是一个 zip 文件,而是一个 html 文件,告诉您出了什么问题,以及您需要做什么才能下载该文件。
浏览器会知道这一点(mime 类型会告诉它它正在被提供 HTML,并且它会向您显示而不是下载它)。
这很可能是 Mediafire 为防止自动下载其文件而采取的措施。欺骗 user-agent header 可能会有帮助,但不太可能。
当您使用 wget 下载该 zip 文件时,您所做的只是下载该 zip 文件所在的 html 页面。您可以看到这一点,因为如果您重做命令以输出到 html 文件,如下所示:
wget http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.html
然后在您选择的 Web 浏览器中打开它,您将看到那个 link 的精美 html 页面,上面有 mediafire 下载按钮。
这完全是因为 mediafire 希望您在下载验证码之前验证您是人类。尝试执行验证码然后发出命令:
wget http://download1472.mediafire.com/gxnd316uacsg/dgx7zbbdbxawbwd/Vhalar-GGJ16.zip
它会起作用。
如果您尚未在尝试从中下载的任何计算机上完成验证码,则需要完成。这就是验证码最初的样子。完成并单击 "Authorize Download" 后,您将可以自由地从服务器获取文件。
如果一切都失败了,请将其最初下载到您的计算机上,然后使用 scp
命令将其传输过来。
对于使用 wget 下载文件的任何人来说,这只是一个提示,但是 URL 在文件名后的末尾有一个代理字符串(例如 ?This_is_a_query_string_sample_&_123545_&
),即 URL 的形式为:
http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.html?This_is_a_query_string_sample_&_123545_&
在这种情况下,在使用 wget 时始终使用双引号(因为 &
在 shell 环境中具有特殊含义)
wget "http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.html?This_is_a_query_string_sample_&_123545_&"