在网站被重新托管并存在重定向的情况下,如何使用 `wget` 创建本地镜像?
我想获取一个位于 https://home.example.com/subdirectory/ 的网站的本地镜像。通常可以按以下步骤实现:
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://home.example.com/subdirectory/
然而,在创建该站点时,它托管在 www.example.com,并使用绝对链接而非相对链接。现在,位于 www.example.com/subdirectory 的链接会自动重定向到 home.example.com/subdirectory(因此访客仍然可以正常访问该站点),但我该如何让wget跟随这些重定向,并把它们全部镜像到一个本地目录中呢?
解决方案
问题在于wget默认只限制在起始域名。当你的站点包含指向 www.example.com 的绝对链接,而你正在抓取 home.example.com 时,wget不会跟随这些跨域链接——它会直接跳过它们。
解决方法是使用 --domains 将这两个域名都加入白名单:
wget --mirror \
--convert-links \
--adjust-extension \
--page-requisites \
--no-parent \
--domains=home.example.com,www.example.com \
https://home.example.com/subdirectory/
这会让wget跟随任意一个域名上的链接,并将所有内容保存在同一个本地目录树下。--convert-links 标志会把所有这些旧的 www.example.com 绝对链接重写为指向你的本地文件,从而使镜像能够离线完全浏览。
如果你还遇到 robots.txt 阻塞,请添加 -e robots=off。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。