我需要在我的 Linux 服务器上存档完整的页面,包括任何链接的图像等。寻找最佳解决方案。有没有办法保存所有资源,然后重新链接它们以在同一目录中工作?
我考虑过使用curl,但我不确定如何做到这一切。另外,我可能需要 PHP-DOM 吗?
有没有办法在服务器上使用firefox并在地址加载后复制临时文件或类似的方法?
欢迎任何意见。
编辑:
wget 似乎“无法”工作,因为文件需要渲染。我在服务器上安装了 Firefox,有没有办法在 Firefox 中加载 url,然后抓取临时文件并在之后清除临时文件?
wget
可以做到这一点,例如:
wget -r http://example.com/
这将镜像整个 example.com 网站。
一些有趣的选项是:
-Dexample.com
:不要点击其他域的链接--html-extension
:将 text/html 内容类型的页面重命名为 .html
使用以下命令:
wget -E -k -p http://yoursite.com
使用
-E
调整扩展。使用 -k
转换链接以从存储加载页面。使用 -p
下载页面内的所有对象。
请注意,此命令不会下载指定页面中超链接的其他页面。这意味着该命令仅下载正确加载指定页面所需的对象。
wget
: 的内容来解决此问题
$ wget -r -l 10 -p http://my.web.page.com/
或其某些变体。
由于您也有动态页面,因此通常无法使用
wget
或任何简单的 HTTP 客户端存档此类网页。正确的存档需要包含后端数据库和任何服务器端脚本的内容。这意味着正确执行此操作的唯一方法是复制支持服务器端文件。这至少包括 HTTP 服务器文档根和任何数据库文件。
编辑:
作为解决方法,您可以修改网页,以便具有适当权限的用户可以下载所有服务器端文件,以及支持数据库的文本模式转储(例如 SQL 转储)。您应该“极其小心”,避免通过此存档系统打开任何安全漏洞。 如果您使用虚拟主机提供商,他们中的大多数都会提供某种允许备份整个站点的 Web 界面。如果您使用实际的服务器,则可以安装大量备份解决方案,包括一些用于托管站点的基于 Web 的解决方案。
我尝试了几个工具
curl
,
wget
,但没有任何效果达到我的预期。最后我找到了一个保存完整网页的工具(图像、脚本、链接样式表......一切都包括在内)。它是用铁锈写成的,名为monolith
。
看一下。 它将图像和其他脚本/样式表打包在 1 个 html 文件中。
示例
保存到本地文件 es6.html
,并将所有页面必需项打包在一个文件中:
monolith https://nodejs.org/en/docs/es6 -o es6.html