【问题标题】:Image folder download using wget使用 wget 下载图像文件夹
【发布时间】:2011-03-09 01:30:32
【问题描述】:

我需要在我的脚本中写一行来从像 abc.com/Image/images/ 这样的 url 下载一个目录(大约有 10 张图片),在脚本中尝试如下 wget 命令:

wget -e robots=off -r -l1 --no-parent -A.gif http://abc.com/Image/images/ 或 wget -A "*.gif" http://abc.com/Image/images/

但它给出的错误是:

HTTP 请求已发送,等待响应... 403 Forbidden 11:25:12 错误 403:禁止。 删除 abc.com/Images/images/index.html 因为它应该被拒绝。 取消链接:没有这样的文件或目录

我已经在使用 wget 命令从同一个 URL 下载一个文件,它工作正常,但在目录的情况下它会失败。

谁能在这方面快速帮助我?

【问题讨论】:

    标签: unix scripting wget


    【解决方案1】:

    如果您知道名称(您必须知道,如果远程目录不是“打开”并且内容无法列出),请考虑将它们放入文件并使用 forwhile(在 bash或powershell或你拥有的)或类似的;如果名称遵循“模式”,请考虑改用curl,使用它您可以执行以下操作

    curl http://asdf.com/what/ever/image/img[00-99].gif -o img#1.gif
    

    下载名称为 img00.gif、img01.gif 等的图像。

    【讨论】:

      【解决方案2】:

      这是不可能的。

      wget 无法知道远程服务器上存在哪些文件。

      相反,如果服务器启用了目录浏览,或者图像链接到某个地方,您可以抓取其他页面。

      【讨论】:

        【解决方案3】:

        我想你不能列出网络服务器上的目录。 wget 正在从其 Web 列表中获取有关您要下载的目录内容的信息。如果不允许这样做(403:禁止),则 wget 无法下载文件。当然,我可能错了

        【讨论】:

        • 但如果我将 url 中的图像名称指定为 :abc.com/Image/images/abc.gif 那么我可以下载这些图像,对于文件夹中的其他图像也是如此。但是当试图获取整个文件夹时,它会出错。
        • 确实如此。您会看到,当您将直接 URL 作为参数提供时,wget 将拥有下载该文件所需的所有信息。但是目录名称不会提供有关其内容的信息。因此,当您传递 wget 目录名称时,它会请求该目录(就像它是一个文件一样)。当从网络服务器请求目录时,如果 index.html(或其他索引文件)不存在,网络服务器会尝试提供该目录的列表。由于此网络服务器不允许这样做,因此 wget 无法获得列表,也不知道要下载什么。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多