如何从 archive.org Wayback Machine 下载网站?

如何从 archive.org Wayback Machine 下载网站?

我想获取 archive.org 上给定网站的所有文件。原因可能包括:

  • 原作者没有存档自己的网站,现在网站已经下线,我想从中创建一个公共缓存
  • 我是某个网站的原作者,丢失了一些内容。我想恢复它
  • ...

我怎么做 ?

考虑到archive.org wayback machine非常特殊:网页链接不指向档案本身,而是指向可能不再存在的网页。客户端使用JavaScript来更新链接,但像递归wget这样的技巧不起作用。

答案1

我尝试了各种方法来下载网站,最后我找到了 wayback machine 下载器 - 它由 Hartator 开发(所以请把所有功劳都归于他),但我根本没有注意到他对这个问题的评论。为了节省您的时间,我决定在此处将 wayback_machine_downloader 宝石添加为单独的答案。

该网站位于http://www.archiveteam.org/index.php?title=恢复列出了从archive.org下载的这些方法:

  • Wayback Machine 下载器,Ruby 中的小工具,用于从 Wayback Machine 下载任何网站。免费且开源。我的选择!
  • 沃里克- 主站点似乎瘫痪了。
  • Wayback 下载器- 这项服务会从 Wayback Machine 下载你的网站,甚至还会为 WordPress 添加插件。不免费。

答案2

这可以使用结合 bshel​​l 脚本wget

这个想法是利用一些URL 功能回程机器:

  • http://web.archive.org/web/*/http://domain/*将以http://domain/递归方式列出所有已保存的页面。它可用于构建要下载的页面索引,并避免使用启发式方法检测网页中的链接。对于每个链接,还有第一个版本和最后一个版本的日期。
  • http://web.archive.org/web/YYYYMMDDhhmmss*/http://domain/page将列出http://domain/pageYYYY 年的所有版本。在该页面中,可以找到版本的具体链接(带有确切的时间戳)
  • http://web.archive.org/web/YYYYMMDDhhmmssid_/http://domain/pagehttp://domain/page将返回给定时间戳的未修改页面。请注意ID_令牌。

这些是构建脚本以从给定域下载所有内容的基础。

答案3

您可以使用 轻松完成此操作wget

wget -rc --accept-regex '.*ROOT.*' START

其中ROOT是网站的根 URL,START是起始 URL。例如:

wget -rc --accept-regex '.*http://www.math.niu.edu/~rusin/known-math/.*' http://web.archive.org/web/20150415082949fw_/http://www.math.niu.edu/~rusin/known-math/

请注意,您应该绕过 Web 档案的 URL 包装框架START。在大多数浏览器中,您可以右键单击页面并选择“仅显示此框架”。

答案4

Wayback Machine 下载器效果很好。抓取了页面 - .html.js.css所有资产。只需index.html在本地运行即可。

安装 Ruby 后,只需执行以下操作:

gem install wayback_machine_downloader
wayback_machine_downloader http://example.com -c 5 # -c 5 adds concurrency for much faster downloads

如果你在下载大量文件的过程中连接失败,你甚至可以再次运行它,它会重新抓取任何丢失的页面

相关内容