我需要存档完整的网页,包括任何链接的图像等。我的Linux服务器寻找最佳解决方案。有没有一种方法可以保存所有的资源,然后重新链接它们,使它们在同一个目录中工作?我考虑过使用curl,但我不确定如何做到这一切。我可能需要PHP-DOM吗?有没有办法在服务器上使用firefox,并在加载地址或类似内容后复制临时文件?任何和所有的输入欢迎。编辑:看起来好像wget“不”工作,因为文件需要渲染。我在服务器上安装了火狐,有没有办法在火狐中加载URL,然后抓取临时文件并在之后清除临时文件?
smdnsysy1#
wget可以做到这一点,例如:
wget
wget -r http://example.com/
这将镜像整个example.com站点。一些有趣的选项是:-Dexample.com:不关注其他域名的链接--html-extension:将text/html内容类型的页面重命名为.html说明书:http://www.gnu.org/software/wget/manual/
-Dexample.com
--html-extension
fumotvh32#
使用以下命令:
wget -E -k -p http://yoursite.com
使用-E调整扩展。使用-k转换链接以从存储中加载页面。使用-p下载页面内的所有对象。请注意,此命令不会下载指定页面中超链接的其他页面。这意味着此命令只下载正确加载指定页面所需的对象。
-E
-k
-p
bweufnob3#
如果网页中的所有内容都是静态的,你可以用类似wget的东西来解决这个问题:
$ wget -r -l 10 -p http://my.web.page.com/
或其一些变型。由于您也有动态页面,因此通常不能使用wget或任何简单的HTTP客户端来归档这样的Web页面。一个合适的归档文件需要包含后端数据库和任何服务器端脚本的内容。这意味着正确执行此操作的唯一方法是复制 * 支持服务器端文件 *。这至少包括HTTP服务器文档根和任何数据库文件。编辑:作为一种解决方法,您可以修改您的网页,以便适当的特权用户可以下载所有服务器端文件,以及备份数据库的文本模式转储(例如SQL转储)。您应该非常小心,避免通过此存档系统打开任何安全漏洞。如果你使用的是虚拟主机提供商,他们中的大多数都提供某种Web界面,允许备份整个网站。如果您使用实际的服务器,则可以安装大量的备份解决方案,包括一些用于托管站点的基于Web的解决方案。
aor9mmx14#
在linux服务器上保存一个完整网页的最好方法是什么?我尝试了几个工具curl,wget包括但没有工作达到我的期望。最后,我找到了一个工具来保存一个完整的网页(图像,脚本,链接页面.......一切都包括在内)。它用Rust写成,名为monolith。取一个look。它不保存图像和其他脚本/样式表作为单独的文件,但将它们打包在一个html文件中。比如说,如果我必须将https://nodejs.org/en/docs/es6保存到es6.html,并将所有页面要求打包在一个文件中,那么我必须运行:
curl
monolith
monolith https://nodejs.org/en/docs/es6 -o es6.html
b4qexyjb5#
wget -r http://yoursite.com
应足够并抓取图像/媒体。有很多选择,你可以喂它。注意:我相信wget和其他任何程序都不支持下载通过CSS指定的图像-所以你可能需要自己手动完成。这里可能有一些有用的论点:http://www.linuxjournal.com/content/downloading-entire-web-site-wget
5条答案
按热度按时间smdnsysy1#
wget
可以做到这一点,例如:这将镜像整个example.com站点。
一些有趣的选项是:
-Dexample.com
:不关注其他域名的链接--html-extension
:将text/html内容类型的页面重命名为.html说明书:http://www.gnu.org/software/wget/manual/
fumotvh32#
使用以下命令:
使用
-E
调整扩展。使用-k
转换链接以从存储中加载页面。使用-p
下载页面内的所有对象。请注意,此命令不会下载指定页面中超链接的其他页面。这意味着此命令只下载正确加载指定页面所需的对象。
bweufnob3#
如果网页中的所有内容都是静态的,你可以用类似
wget
的东西来解决这个问题:或其一些变型。
由于您也有动态页面,因此通常不能使用
wget
或任何简单的HTTP客户端来归档这样的Web页面。一个合适的归档文件需要包含后端数据库和任何服务器端脚本的内容。这意味着正确执行此操作的唯一方法是复制 * 支持服务器端文件 *。这至少包括HTTP服务器文档根和任何数据库文件。编辑:
作为一种解决方法,您可以修改您的网页,以便适当的特权用户可以下载所有服务器端文件,以及备份数据库的文本模式转储(例如SQL转储)。您应该非常小心,避免通过此存档系统打开任何安全漏洞。
如果你使用的是虚拟主机提供商,他们中的大多数都提供某种Web界面,允许备份整个网站。如果您使用实际的服务器,则可以安装大量的备份解决方案,包括一些用于托管站点的基于Web的解决方案。
aor9mmx14#
在linux服务器上保存一个完整网页的最好方法是什么?
我尝试了几个工具
curl
,wget
包括但没有工作达到我的期望。最后,我找到了一个工具来保存一个完整的网页(图像,脚本,链接页面.......一切都包括在内)。它用Rust写成,名为
monolith
。取一个look。它不保存图像和其他脚本/样式表作为单独的文件,但将它们打包在一个html文件中。
比如说,
如果我必须将https://nodejs.org/en/docs/es6保存到es6.html,并将所有页面要求打包在一个文件中,那么我必须运行:
b4qexyjb5#
应足够并抓取图像/媒体。有很多选择,你可以喂它。
注意:我相信
wget
和其他任何程序都不支持下载通过CSS指定的图像-所以你可能需要自己手动完成。这里可能有一些有用的论点:http://www.linuxjournal.com/content/downloading-entire-web-site-wget