如何在Ruby脚本中备份整个网页(包括图像等)?

jas*_*ogd 2 html ruby scripting

如果我有网页的网址,如何将其下载到本地,包括所有图片,样式表等?我是否必须手动解析HTML并找出所有外部资源?还是有更干净的方式?

谢谢!

the*_*Man 5

这是我在其他地方寻找的其中一次.并不是说它不能在Ruby中完成,但是还有其他现有的工具可以很好地完成.为什么重新发明轮子?

看看wget.它是用于检索Web资源(包括镜像站点)的标准工具,可在所有平台上使用.来自文档:

仅检索一个html页面,但要确保还要显示页面所需的所有元素,例如内嵌图像和外部样式表.还要确保下载的页面引用了下载的链接.

wget -p --convert-links http://www.server.com/dir/page.html
Run Code Online (Sandbox Code Playgroud)

html页面将保存到www.server.com/dir/page.html,以及www.server.com/下的图像,样式表等,具体取决于它们在远程服务器上的位置.

您可以使用反引号轻松地在Ruby脚本中调用wget,或者%x:

`/path/to/wget -p --convert-links http://www.server.com/dir/page.html`
Run Code Online (Sandbox Code Playgroud)

要么

%x{/path/to/wget -p --convert-links http://www.server.com/dir/page.html}
Run Code Online (Sandbox Code Playgroud)

在Ruby中有很多其他机制可以做同样的事情,它可以让你获得更多的控制权.