【问题标题】:wget recursive/mirror option not following linkswget 递归/镜像选项不跟随链接
【发布时间】:2019-02-19 16:36:08
【问题描述】:

我目前正在尝试镜像一个网站。 wget 似乎很好地完成了这项工作,但它不适用于某些页面。

查看manual,命令

wget -r https://www.gnu.org/

应该下载 GNU 页面。它实际上就是这样做的。但是,如果我使用其他页面,例如我的个人网站的起始页,这将不再有效。

wget -r https://my-personal.website

index.html 已下载,但没有任何 CSS/JS,更不用说递归下载了。下载的只是index.html

我尝试使用-U 选项设置用户代理,但这也无济于事。 是否缺少导致 wget 在index.html 之后停止的选项?

更新:我也尝试了 --mirror 选项,它也不起作用并显示相同的行为。

【问题讨论】:

  • 你可以试试“-m, --mirror 的快捷方式 -N -r -l inf --no-remove-listing”
  • @bdn02 已经试过了,还是不行。

标签: shell wget


【解决方案1】:

您的网站通过 HTML 中的 <meta> 标记使用一种相对鲜为人知的机器人控制形式。你可以阅读更多关于它的信息here。 Wget 将正确遵守此 robots 指令中的说明。如果您在尝试递归下载网站时仔细查看 Wget 的调试输出,就会看到这种情况:

在 my-personal.website/index.html 中没有关注:1

现在,很遗憾,除非您是开发人员之一并且了解代码库,否则这不是一条很有帮助的信息。在这种情况下,我将尝试更新消息以使其更加清晰。就像我们在由于 robots.txt 文件而发生此类事情时所做的那样。

无论如何,修复很简单,禁用机器人解析。虽然在访问您自己的网站时可以这样做,但在对他人执行此操作时请注意网络服务器。您需要的完整命令是:

$ wget -r -erobots=off https://my-personal.website

编辑:正如承诺的那样,添加了改进的消息。见here。它现在打印:

在 my-personal.website/index.html 中找到 no-follow 属性。不会关注此页面上的任何链接

【讨论】:

  • 感谢您的解释和解决方案!那是一个快速的补丁,很高兴看到:)
猜你喜欢
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 2013-09-02
  • 2021-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多