可能重复:
wget 下载损坏的 JPEG 文件
我正在尝试编写一个脚本,以便可以设置这个图片作为背景并每 10 分钟更新一次,但我甚至无法下载图像:
$ wget "http://static.die.net/earth/mercator/1600.jpg" -O imagen.jpg
--2012-08-23 17:51:41-- http://static.die.net/earth/mercator/1600.jpg
Solving static.die.net (static.die.net)... 209.151.236.22, 2607:f820:42::16
Connecting with static.die.net (static.die.net)[209.151.236.22]:80... connected.
HTTP Request sent, waiting reply... 200 OK
Length: 37 [image/gif]
Saving to: “imagen.jpg”
100%[======================================>] 37 --.-K/s en 0s
2012-08-23 17:51:42 (5,58 MB/s) - “imagen.jpg” saved [37/37]
并且imagen.jpg
的大小为37字节......
任何想法?
注意:输出的wget
是西班牙语,所以我翻译成英语。
答案1
这张图片也是 Wallch 程序的一个功能。正如这里提到的:http://wall-changer.sourceforge.net/screenshots.phpWallch 使用第三方图像托管商来提供此图像,以保护 static.die.net 的带宽。
因此,如果您想将此图像作为背景,您可以去下载 Wallch(位于 Ubuntu 软件中心)。
顺便说一下,图像每 30 分钟更新一次,而不是每 10 分钟更新一次。
答案2
它看起来像是在悄悄地将您重定向到一张恰好是空的 gif 图像。这是 CDN 用来阻止人们使用类似 的工具进行抓取的一种简单策略wget
。
不幸的是(对于他们来说)wget
允许您欺骗另一个用户代理字符串,如下所示:
wget -U 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1' http://static.die.net/earth/mercator/1600.jpg
但您可能应该将他们的空图像响应解读为“请不要在我们的服务器上使用 wget”。这可能在他们的服务条款中。