xhackingz/wayback-unified
GitHub: xhackingz/wayback-unified
一款基于 Wayback CDX API 的严格子域/域名 URL 采集器,解决范围溢出与结果污染问题。
Stars: 0 | Forks: 0
# wayback-unified
一个 Wayback Machine URL 采集器,专注于一件事:**精确针对你指定的子域或域名,且仅限该目标。**
## 解决的问题
像 **waymore**、**waybackurls** 和 **waybackpy** 这样的工具各自都很强大,但组合使用时会导致范围问题——当你请求 `api.example.com` 时,往往会返回 `example.com`、无关的子域或通过 CDX 索引泄漏的父域。
wayback-unified 解决了这个问题。它使用单一、严格的 CDX 查询,并在输出前对每个结果进行主机名级别的严格过滤,确保你请求什么就得到什么。
## 主要功能:精确范围定位
- `-d api.example.com` → 仅 `api.example.com`(除非使用 `--no-subs`,否则包含其子子域)
- `-d example.com` → 整个域名及其所有子域
- `-d example.com --no-subs` → 仅根域名,不包含其他内容
无溢出、无泄漏、无来自其他主机的意外结果。
## 工作原理
单一数据源 — Wayback CDX API:
```
https://web.archive.org/cdx/search/cdx?url=*.TARGET&fl=original&collapse=urlkey
```
处理流程:
1. 使用 resume-key 分页连接到 CDX 端点
2. 以 64 KB 分块流式响应——整个响应体不会加载到内存
3. 遍历游标分页,直到 API 信号完成(适用于任意规模的数据集)
4. 在接受每个 URL 前,在主机名级别应用严格的范围过滤
5. 对结果进行去重和标准化(按到达顺序)
6. 找到 URL 时立即输出到 stdout,或使用 `-o` 写入文件
无外部依赖——仅使用 Python 标准库。
## 安装
```
git clone https://github.com/xhackingz/wayback-unified
cd wayback-unified
python wayback_unified.py -d example.com
```
**要求:** Python 3.10+
### 更新
```
git pull
```
## 用法
```
python wayback_unified.py -d [options]
```
| 选项 | 描述 |
|---|---|
| `-d`, `--domain` | 目标域名或子域 |
| `--no-subs` | 仅精确主机名——不包含子域 |
| `--from YYYYMMDD` | 开始日期过滤 |
| `--to YYYYMMDD` | 结束日期过滤 |
| `--filter-status CODE` | 按归档的 HTTP 状态码过滤(例如 `200`) |
| `--filter-mime TYPE` | 按 MIME 类型过滤(例如 `text/html`) |
| `-o FILE` | 将结果写入文件而非 stdout |
## 示例
```
# 所有域名的 URL(默认包含子域名)
python wayback_unified.py -d example.com
# 仅特定子域名
python wayback_unified.py -d api.example.com
# 根域名,不包含子域名
python wayback_unified.py -d example.com --no-subs
# 日期范围
python wayback_unified.py -d example.com --from 20200101 --to 20231231
# 仅 HTTP 200
python wayback_unified.py -d example.com --filter-status 200
# 仅 HTML 页面
python wayback_unified.py -d example.com --filter-mime text/html
# 保存到文件
python wayback_unified.py -d example.com -o results.txt
# 管道到其他工具
python wayback_unified.py -d example.com | grep "\.js$"
python wayback_unified.py -d example.com | httpx -silent
```
## 许可证
[MIT](LICENSE)
标签:CDX API, Python 标准库, SEO 检索, Spyse API, URL 采集, Wayback Machine, 内存高效, 反汇编, 域名侦察, 子域接管, 开源安全工具, 数据去重, 流式处理, 精确范围控制, 网络归档, 逆向工具, 逆向工程平台