【问题标题】:wget adding headers to downloaded files when recursivewget在递归时向下载的文件添加标题
【发布时间】:2022-01-12 02:07:29
【问题描述】:

我正在尝试从 Apache 服务器下载数据集。我使用以下命令使用 wget 递归下载文件,只下载扩展名为 .vts 的文件:

wget -r -A vts <url>

但是,wget 似乎在下载文件的开头添加了行:

 15:17:28 GMT
ETag: "514256db-7df6c3567d200"
Accept-Ranges: bytes
Content-Length: 1098002907
Vary: Accept-Encoding
Connection: close

<VTKFile ...

前6/7行不在原始文件中,当我使用wget单独下载文件时,这个没有添加到标题中。有没有办法在不添加这些标头的情况下递归使用 wget?

【问题讨论】:

    标签: recursion header wget


    【解决方案1】:

    注意,标题后面有空行,所以看起来像

    --save-headers 将 HTTP 服务器发送的 headers 保存到文件中,在实际内容之前,以空行作为分隔符。

    被使用了,尽管wget -r -A vts &lt;url&gt; 中显然没有这样的选项。根据更改Wgetrc 文件的文档可能

    ## Think well before you change them, since they may reduce wget's
    ## functionality, and make it behave contrary to the documentation:
    

    虽然我不知道是否可以安装以获得您描述的行为(即保存标头但仅在递归下载时)。 无论如何,在 Wgetrc 文件中,上面的设置写为save_headers,所以save_headers = 0 应该不保存标题,而保存save_headers = 1。请检查您正在使用的 Wgetrc 文件,特别注意save_headers

    编辑:评论 发生异常:BadStatusLine x\n 15:17:28 GMT 建议出于某种原因,您正在下载的服务器选择为您提供不符合 @987654322 的响应@。第一行响应应该是

    HTTP-Version SP Status-Code SP Reason-Phrase CRLF
    

    其中 SP 表示空格字符,CRLF 表示回车换行符 比如

    HTTP/1.1 200 OK
    

    这也许可以解释为什么你得到了时髦的结果。请注意,wget 是为作为弹性下载器而设计的,因此尽管使用选择与RFC2616 对抗的服务器,您还是会得到一些结果。

    在这种情况下,唯一可行的解​​决方案可能是从通过wget 下载的文件中删除标题。

    【讨论】:

    • 我不确定 wgetrc 应该放在哪里,我无法在任何地方的计算机上找到它。因此,我只是复制了您从文档中链接的示例 wgetrc,并在“~/.wgetrc”中创建了一个。示例中没有“save_headers”变量,所以我按照您的指示创建了自己的变量,并将其设置为 0。不幸的是,它仍然不起作用。我什至决定编写一个 python 脚本,它在每个单独的文件上调用单独的 wget 命令来下载,这样我就不必使用递归选项,但它仍然以某种方式添加了这些头文件。有没有 wget 的替代品?
    • 在我尝试创建该 .wgetrc 之后,现在我的 wget 始终只添加标题,即使我使用 wget 下载单个文件也是如此。我现在真的很困惑。
    • 我在我的 Windows 系统上安装了 wget,在我的笔记本电脑和台式机上。 wget 似乎与添加标题非常不一致。当我第一次尝试时,它似乎没有添加标题。但是,在第一次下载后,它会一直在我下载的文件中添加标题。无论我使用什么方法手动删除标题,它都会以某种方式损坏文件,我仍然无法读取它。
    • @James 如果您已经安装了python,您可以使用urlretrieve 来检索单个文件,而不是调用外部工具
    • 感谢您的回复。我刚试过,但我得到“发生异常:BadStatusLine x\n 15:17:28 GMT”。时间戳似乎是我下载文件时得到的标题的第一行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多