【问题标题】:Using regEx to download the entire directory using wget使用 regEx 使用 wget 下载整个目录
【发布时间】:2019-04-14 10:20:28
【问题描述】:

我想从诸如 https://dummy.site.com/aabbcc/xyz/2017/09/15/2194812/O7ca217a71ac444eda516d8f78c29091a.pdf 这样的网址下载多个 pdf 文件

如果我在完整的 URL 上执行 wget,那么它会下载文件 wget https://dummy.site.com/aabbcc/xyz/2017/09/15/2194812/O7ca217a71ac444eda516d8f78c29091a.pdf

但是如果我尝试递归下载整个文件夹,那么它会返回 403(禁止访问)

wget -r https://dummy.site.com/aabbcc/xyz/

我尝试过设置用户代理,拒绝 robots.txt 和来自互联网的其他解决方案,但我又回到了同一点。

所以我想形成所有可能的 URL 列表,将给定的 URL 视为常见模式,但不知道该怎么做。

我只知道我可以将该文件作为输入传递给 wget,它将递归下载文件。因此,在此处寻求使用 regEx 形成 URL 列表的帮助。 谢谢!

【问题讨论】:

  • 正则表达式不会生成可能的匹配。它匹配现有的个。
  • 是的,很抱歉造成混乱。我想要的是一个脚本,它将遍历通用模式(我假设可以使用正则表达式完成)并生成所有 URL 组合,这些组合可以传递给 wget,它将从实际存在的 URL 下载,或者继续前进。
  • wget 只是跟随链接——如果你只是将它指向某个 URL,它就无法神奇地找到任何有效的子 URL,如果没有目录列表(在大多数现代网站上)它可能能够下载不会有)。

标签: regex shell cygwin wget http-status-code-403


【解决方案1】:

您无法使用通配符下载看不到的文件。如果主机不支持目录列表,您不知道文件名/路径是什么。此外,由于您不知道生成文件名的算法,因此您无法生成和获取它们。

【讨论】:

    猜你喜欢
    • 2013-06-21
    • 1970-01-01
    • 2019-05-30
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多