wget 返回 html 页面而不是原始文件

wget 返回 html 页面而不是原始文件

就我而言,问题出在 SourceForge.net 上。实际上我试图下载这些文件:

http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-src-2.9.4.0.tar.bz2/download
http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-docs-2.9.4.0.tar.bz2/download

事情进展不顺利,所以我登录了获取,日志文件是:

--2012-08-21 09:52:17--  http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-src-2.9.4.0.tar.bz2/download
Resolving sourceforge.net... 216.34.181.60
Connecting to sourceforge.net|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18846 (18K) [text/html]
Saving to: `download'

     0K .......... ........                                   100% 6.30K=2.9s

2012-08-21 09:52:25 (6.30 KB/s) - `download' saved [18846/18846]

--2012-08-21 09:52:25--  http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-docs-2.9.4.0.tar.bz2/download
Connecting to sourceforge.net|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 200 OK

    The file is already fully retrieved; nothing to do.

FINISHED --2012-08-21 09:52:28--
Downloaded: 1 files, 18K in 2.9s (6.30 KB/s)

正如您在此日志文件中所看到的,我最终得到了一个 HTML 文件:(


这表明 wget 不会在页面上等待让网页将其重定向到另一个位置,而是自行下载页面。

问题:

我想要这两个文件,用wget,怎么办?

答案1

您的 wget 似乎禁用了重定向,请尝试指定--max-redirect=2或更高的数字。您可能还想指定--trust-server-names允许 wget 在重定向后更新文件名,否则下载的文件仍然会被调用下载

答案2

您的情况是重定向,但是当您仅针对您的cookie进行重定向时,FireFox有两个,第一个从您的cookie中extension 导出格式,第二个导入它。然后你使用:txt filewget

wget --load-cookies your_cookies_file.txt your_URL

答案3

可能是在下载网站之前需要设置一些 cookie(例如知道您是登录用户,或者您已接受许可协议等)。因此,从浏览器完成下载时应该可以正常工作,但使用 wget 时会失败。

您可以根据您的用例查找丢失的 cookie,并使用 wget 提供的身份验证选项,或者仅使用 --header 选项发送 cookie 数据。

希望能解决您的问题。

答案4

为什么没有人提到 .netrc 文件?如果网站需要登录,则必须有一个保存凭据信息的 .netrc 文件。当我遇到类似的问题时,这就是让我绊倒的原因。

相关内容