我想在 archive.org 获取给定网站的所有文件。原因可能包括:
我怎么做 ?
考虑到 archive.org 回溯机器非常特殊:网页链接不是指向档案本身,而是指向可能不再存在的网页。客户端使用 JavaScript 来更新链接,但是像递归 wget 这样的技巧是行不通的。
Tob*_*ier 89
我尝试了不同的方法来下载一个网站,最后我找到了由 Hartator 构建的回归机器下载器(所以所有的学分都归他所有),但我根本没有注意到他对这个问题的评论。为了节省您的时间,我决定在此处添加 wayback_machine_downloader gem 作为单独的答案。
位于http://www.archiveteam.org/index.php?title=Restoring的站点列出了从 archive.org 下载的这些方法:
use*_*520 25
这可以使用bash shell 脚本与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/page将http://domain/page在给定的时间戳返回未修改的页面。注意id_令牌。这些是构建脚本以从给定域下载所有内容的基础知识。
您可以使用 轻松完成此操作wget。
wget -rc --accept-regex '.*ROOT.*' START
Run Code Online (Sandbox Code Playgroud)
哪里ROOT是网站的根网址,START是起始网址。例如:
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/
Run Code Online (Sandbox Code Playgroud)
请注意,您应该绕过 Web 存档的STARTURL包装框架。在大多数浏览器中,您可以右键单击页面并选择“仅显示此框架”。
有一个专门为此目的设计的工具,Warrick:https : //code.google.com/p/warrick/
它基于 Memento 协议。
| 归档时间: |
|
| 查看次数: |
165127 次 |
| 最近记录: |