#wayback #archive #downloader #api-bindings #query-string #sha-1 #wayback-machine

bin+lib wayback-rs

用于与 Internet Archive 的 Wayback Machine 一起工作的工具

6 个版本 (破坏性更新)

0.5.1 2022 年 7 月 6 日
0.5.0 2022 年 6 月 20 日
0.4.0 2022 年 5 月 3 日
0.3.0 2022 年 3 月 23 日
0.1.0 2021 年 10 月 29 日

1070 in Web 编程

MPL-2.0 许可证

69KB
1.5K SLoC

概述

Build status Coverage status

此库从 ✨cancel-culture✨ 项目中提取了一些用于与 Wayback Machine 一起工作的非 Twitter 特定的代码。

示例用法

该项目主要用于作为库使用(例如,它是 ✨cancel-culture✨ 的依赖项),但它还提供了一些与 Wayback 存档交互的简单工具。

例如,您可以使用 wbms 工具下载匹配给定 URL 查询的快照。

$ cargo build --release --bin wbms
    ...
    Finished release [optimized] target(s) in 0.47s
$ target/release/wbms -vvv --base toad download --query "https://spottedtoad.wordpress.com/*"
08:49:45 [INFO] Resolving 1 items
08:49:45 [INFO] Resolving: https://spottedtoad.wordpress.com/2016/01/25/higenous-hogenous-birth-timings-endogenous/?share=facebook
08:49:48 [WARN] Invalid guess, re-requesting
08:49:50 [INFO] Downloading 6124 items
...
09:15:02 [INFO] Successfully downloaded: 5582
09:15:02 [INFO] Downloaded by invalid hash: 189
09:15:02 [INFO] Skipped: 5246
09:15:02 [INFO] Failed: 353

此命令执行了多项操作。首先,它查询 Wayback Machine 的 CDX 服务器以获取快照列表。接下来,它识别重定向的目标。此时,程序将在当前路径中创建一个名为 --basetoad 目录,该目录包含一个子目录(errors)和四个文件

  • queries.txt:您请求的查询列表
  • originals.csv:列出所有非重定向快照的逗号分隔表
  • redirects.csv:重定向快照
  • extras.csv:重定向的目标

每个 CSV 文件都具有相同的格式

  • URL
  • Wayback Machine 时间戳 (%Y%m%d%H%M%S)
  • Wayback Machine 摘要(Base32 编码的 SHA-1)
  • MIME 类型
  • 长度
  • HTTP 状态码

错误目录将包含一个文件(error/results.csv),该文件将列出在重定向解析过程中发生的任何错误。

程序同时继续下载所有快照。如果每个快照的内容与CDX结果中提供的摘要匹配,它将被保存到一个新的 data 子目录中,文件名是摘要(以及扩展名 .gz)。

在某些情况下,内容不会与提供的摘要匹配(尽管似乎有一些模式,但我无法理解原因)。对于这些快照,文件将保存在一个 invalid 目录中,文件名是实际的摘要。

下载完成后,在 errors 目录中还将有两个额外的文件。文件 errors/invalid.csv 将列出所有快照中提供的摘要和实际摘要不匹配的配对。文件 errors/items.csv 将列出任何其他无法下载的快照(如果你已启用详细输出,例如使用 -vvv,则这些错误的相关详细信息也会在运行期间打印到 stdout)。

现在,我们有了针对我们URL查询的所有Wayback Machine快照的本地副本。对于一个快速的项目(如我们这里的例子),通常直接搜索压缩文件就足够简单了

$ zegrep -i hartog toad/data/*
toad/data/2AURMICRQRQUKA3UKDWBFUWRG65CNDWD.gz:<p>A <a href="/Users/jhartog/Documents/e56e818283081d7f7537b163a0e8f580.pdf">2014 study in India</a> found a similar association between neuroticism and substance dependence...
...

但你也可以解压缩它们以便更容易处理。

该工具还有一些其他功能。例如,如果你使用 --twitter 标志,它将期望查询是一个逗号分隔的Twitter用户名列表,它将将其扩展为四个查询(针对移动和非移动域上的推文和资料页)。

许可证

本项目采用 Mozilla公共许可证,版本2.0。有关详细信息,请参阅LICENSE文件。

依赖项

~26–42MB
~790K SLoC