在 Linux 服务器上保存完整网页的最佳方法是什么?

问题描述 投票:0回答:5

我需要在我的 Linux 服务器上存档完整的页面,包括任何链接的图像等。寻找最佳解决方案。有没有办法保存所有资源,然后重新链接它们以在同一目录中工作?

我考虑过使用curl,但我不确定如何做到这一切。另外,我可能需要 PHP-DOM 吗?

有没有办法在服务器上使用firefox并在地址加载后复制临时文件或类似的方法?

欢迎任何意见。

编辑:

wget 似乎“无法”工作,因为文件需要渲染。我在服务器上安装了 Firefox,有没有办法在 Firefox 中加载 url,然后抓取临时文件并在之后清除临时文件?

linux curl save html wget
5个回答
26
投票

wget
可以做到这一点,例如:

wget -r http://example.com/

这将镜像整个 example.com 网站。

一些有趣的选项是:

-Dexample.com
:不要点击其他域的链接
--html-extension
:将 text/html 内容类型的页面重命名为 .html

手册:http://www.gnu.org/software/wget/manual/


18
投票

使用以下命令:

wget -E -k -p http://yoursite.com

使用

-E
调整扩展。使用
-k
转换链接以从存储加载页面。使用
-p
下载页面内的所有对象。

请注意,此命令不会下载指定页面中超链接的其他页面。这意味着该命令仅下载正确加载指定页面所需的对象。


6
投票

如果网页中的所有内容都是静态的,您可以使用类似

wget
:

的内容来解决此问题
$ wget -r -l 10 -p http://my.web.page.com/

或其某些变体。

由于您也有动态页面,因此通常无法使用

wget
或任何简单的 HTTP 客户端存档此类网页。正确的存档需要包含后端数据库和任何服务器端脚本的内容。这意味着正确执行此操作的唯一方法是复制支持服务器端文件。这至少包括 HTTP 服务器文档根和任何数据库文件。

编辑:

作为解决方法,您可以修改网页,以便具有适当权限的用户可以下载所有服务器端文件,以及支持数据库的文本模式转储(例如 SQL 转储)。您应该“极其小心”,避免通过此存档系统打开任何安全漏洞。 如果您使用虚拟主机提供商,他们中的大多数都会提供某种允许备份整个站点的 Web 界面。如果您使用实际的服务器,则可以安装大量备份解决方案,包括一些用于托管站点的基于 Web 的解决方案。


5
投票
在 Linux 服务器上保存完整网页的最佳方法是什么?

我尝试了几个工具
curl

wget
,但没有任何效果达到我的预期。
最后我找到了一个保存完整网页的工具(图像、脚本、链接样式表......一切都包括在内)。它是用铁锈写成的,名为

monolith

看一下
它将图像和其他脚本/样式表打包在 1 个 html 文件中。

示例

我可以使用以下命令将网页

https://nodejs.org/en/docs/es6

保存到本地文件 es6.html,并将所有页面必需项打包在一个文件中:

monolith https://nodejs.org/en/docs/es6 -o es6.html



2
投票
应该足够并抓取图像/媒体。您可以给它提供很多选择。

注意:我相信

wget

或任何其他程序都支持下载通过 CSS 指定的图像 - 因此您可能需要自己手动执行此操作。


这里可能有一些有用的参数:

http://www.linuxjournal.com/content/downloading-entire-web-site-wget

© www.soinside.com 2019 - 2024. All rights reserved.