使用wget下载ZIP文件

10

我在使用 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文件下载到我的服务器,而是要先下载到电脑上,再重新上传到服务器。有人看到我命令中的错误吗?

文件大小也是440K吗,还是只是传输速率? - YouHaveaBigEgo
不,文件大小为96kb。 - Logan Butler
4个回答

9
你使用wget下载zip文件时,实际上只是在下载zip文件所在的html页面。你可以通过将命令输出到一个html文件中,再次执行该命令来验证这一点:
wget http://download1472.mediafire.com/5ndlsskkyfmg/dgx7zbbdbxawbwd/Vhalar-GGJ16.html

当你在自己选择的Web浏览器中打开它,你会看到那个链接的漂亮HTML页面,并带有Mediafire下载按钮。这是因为Mediafire要求你在下载前通过验证码验证身份。请尝试完成验证码后再执行以下命令:
wget http://download1472.mediafire.com/gxnd316uacsg/dgx7zbbdbxawbwd/Vhalar-GGJ16.zip

它会起作用。

如果你在尝试从任何计算机上下载文件时没有完成验证码,那么你需要先完成它。这是原始验证码的样子。一旦你完成并点击“授权下载”,你就可以自由地从服务器上使用wget下载该文件。

Mediafire Captcha

如果所有其他方法都失败了,请在你的计算机上最初下载它,并使用scp命令进行传输。


好的,我重新加载了页面并完成了验证码,但它仍然出现了相同的情况(下载了一个小的html/zip文件)。 - Logan Butler
当您打开http://download1472.mediafire.com/gxnd316uacsg/dgx7zbbdbxawbwd/Vhalar-GGJ16.zip或在服务器上单击它时,是否会收到任何错误消息或文件传输开始?很奇怪您无法写入您的服务器。 - YouHaveaBigEgo
特别针对Mediafire下载,您需要在此处查看API密钥。https://www.mediafire.com/developers/getting_started/getting_started/ - Chirality
写文件没有问题。难道没有人去检查一下网站上的验证码是什么吗?验证码阻止了直接下载。要么尝试设置Mediafire的开发版本,要么使用其他文件共享服务。 - Chirality
@LoganButler,你能在你的服务器上打开GUI吗?还是只能使用命令行?如果你能打开浏览器并在服务器上下载它,甚至只需要长时间通过验证码,那么你就没问题了。如果你一直试图发出命令而没有完成它,那么什么都不会起作用,你将继续下载HTML页面。 - Chirality
显示剩余2条评论

3
请查看您下载的94kb文件的内容,使用类似vi的工具打开。很可能它不是一个zip文件,而是一个HTML文件,告诉您出了什么问题,以及您需要做什么才能下载该文件。
浏览器会知道这一点(MIME类型会告诉它正在提供HTML文件,并且它会将其显示给您而不是下载)。
很可能这是Mediafire采取的措施,以防止其文件被自动下载。模拟用户代理标头可能有所帮助,但不太可能。

好的,我使用 nano 打开了它,我应该特别查找这个文件里面的什么? - Logan Butler
那么你看到了什么?它是什么样子的? 它是HTML吗?(第一个字符是“<html>”或“<!doctype”,然后是更多的HTML代码)? 它是一个压缩文件吗?(前两个字符是“PK”,然后是一堆二进制垃圾?) 还是其他什么东西? - Dewi Morgan
这是大约30行HTML代码。 - Logan Butler
1
那个页面上最后一个答案有效。仅仅去掉“.zip”部分就让它下载了,真是太奇怪了。 - Logan Butler
1
感谢您的帮助,Dewi。 - Logan Butler
显示剩余5条评论

0

对于使用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_&"

0

您还可以使用 wget 选项 -O 下载指定新名称的 zip 文件。

wget -O new_name_for_the_file.zip <url-address.zip>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接