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 编程
69KB
1.5K SLoC
概述
此库从 ✨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 服务器以获取快照列表。接下来,它识别重定向的目标。此时,程序将在当前路径中创建一个名为 --base
的 toad
目录,该目录包含一个子目录(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