我对wget命令有些怀疑。这是我想要实现的目标。我想从这个链接“http://snapshots.linaro.org/oneiric/lt-origen-oneiric/20120321/0/images/hwpack/hwpack_linaro-lt-origen_20120321-0_armel_supported.tar.gz”下载一个tar包。当我在浏览器中使用它来下载软件包时,此链接工作正常,但当我使用相同的链接通过wget命令下载它时,它重定向到“http://snapshots.linaro.org/licenses/samsung- v2.html“接受许可协议的链接,而不是下载tar文件,它正在下载许可协议文件。 因此,我应该提供什么选项,以便下载所需的tar文件和许可协议文件。请帮我解决这个问题。
答案 0 :(得分:2)
您应该使用wget复制与使用Web浏览器相同的操作。第一步是查看当您请求许可页面和确认按钮时执行的http请求是什么。
为此,您可以使用firebug或livehttpheaders。一旦你有了url(使用post / get params),你就可以使用shell脚本和多个wget调用来重现它。
如果网站跟踪cookie,您需要指示wget将它们保存在cookiejar中并使用所述cookiejar进行进一步的请求。
在您的情况下,第一个请求是
GET /oneiric/lt-origen-oneiric/20120321/0/images/hwpack/hwpack_linaro-lt-origen_20120321-0_armel_supported.tar.gz HTTP/1.1
您获得了Cookie和重定向
Set-Cookie: downloadrequested=/oneiric/lt-origen-oneiric/20120321/0/images/hwpack/hwpack_linaro-lt-origen_20120321-0_armel_supported.tar.gz; path=/; domain=.snapshots.linaro.org
Location: http://snapshots.linaro.org/licenses/samsung-v2.html
单击接受按钮
GET /licenses/samsung-accepted.html HTTP/1.1
你得到另一个cookie和另一个位置(这是你想要下载的文件)
Set-Cookie: samsunglicenseaccepted-v1=true; path=/oneiric/lt-origen-oneiric/20120321/0/images/hwpack/; domain=.snapshots.linaro.org; expires=Wed, 21-Mar-2012 17:37:57 GMT
Location: http://snapshots.linaro.org/oneiric/lt-origen-oneiric/20120321/0/images/hwpack/hwpack_linaro-lt-origen_20120321-0_armel_supported.tar.gz