Wget从URL下载不完整的文件。

8 浏览
0 Comments

Wget从URL下载不完整的文件。

我想在我的Linux系统上下载一个文件,其URL为http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jre-7u51-linux-i586.tar.gz。我使用以下命令进行下载:

wget -U 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0' http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jre-7u51-linux-i586.tar.gz

其中,用户代理已经通过-U参数传递,我是从浏览器的用户代理中复制的。但是它只下载了5.3KB大小的文件,而整个文件的大小为46.09MB,并且下载的文件是损坏的。

我该如何解决这个问题?

0
0 Comments

问题的原因是Oracle拒绝了请求,要求同意OTN许可条款才能下载产品。为了解决这个问题,需要确保浏览器已启用"cookies"和JavaScript,并且点击了要下载的产品的"接受许可"按钮。此外,还需要在接受许可后的30分钟内进行下载,并且可能需要发送一些GET或POST值以及保持会话数据。

0
0 Comments

问题的原因是下载的文件不完整,因为在下载文件之前需要同意Oracle Technology Network的许可条款。在新的浏览器会话中访问该URL,会显示一个错误页面,上面写着“为了从Oracle Technology Network下载产品,您必须同意OTN许可条款。”这就是你下载的页面 - 重定向到的页面的文件大小为5307字节。

在从下载页面获取文件之前,您必须使用单选按钮接受许可协议。这样做会在您的浏览器中创建一个cookie,在获取实际文件时会检查该cookie。但是wget无法使用该cookie。

您需要直接从网站下载,或者安排wget发送一个虚假的cookie,但可能不是通用的支持。一些下载文件以前会附带一个wget脚本,不确定这个有没有;从下载页面上看,好像没有。

0