logiover/wayback-machine-url-extractor
GitHub: logiover/wayback-machine-url-extractor
一个 Apify Actor,无需 API key 即可从 Wayback Machine 批量提取任意域名的历史归档 URL 并输出结构化数据。
Stars: 0 | Forks: 0
# Wayback Machine URL 提取器 — 来自 Internet Archive 的已归档及历史 URL
[](https://apify.com/logiover/wayback-machine-url-extractor)
[](https://apify.com/logiover/wayback-machine-url-extractor)




使用 **Wayback Machine URL 提取器** 恢复网站曾经发布过的每一个历史 URL —— 这是一个托管在 Apify 上的 Actor,可以从 Internet Archive 的 Wayback Machine 中提取任何域名的完整 **已归档 URL** 清单。输入一个或多个域名,即可获取多达数万个唯一的 URL,每个 URL 都包含其 **捕获日期、已归档 HTTP 状态、MIME 类型、内容摘要以及直接的 Wayback 快照链接** —— 包括那些已被删除、重命名或在迁移中丢失的页面。**无需 API key,无需登录,无需帐户** —— 只需输入域名,即可输出干净的 URL 数据集。
这款 **Internet Archive URL 提取器** 非常适合用于 SEO 迁移和 301 重定向映射、已删除内容的恢复、OSINT 以及网络考古。一次运行即可返回去重后的列表(每个唯一 URL 占一行),可导出为 JSON、CSV 或 Excel 格式,随时可用于重定向映射构建器、状态检查工具或电子表格中。
## ▶️ 您将获得什么
每个已归档的唯一 URL 占一行,经过去重处理,因此每个 URL 只会出现一次,而不是每次捕获都出现一次:
- **`url`** — 原始的已归档 URL。
- **`domain`** — 该 URL 所属的规范化域名。
- **`capturedAt`** — ISO 8601 格式的捕获时间。
- **`timestamp`** — 原始的 14 位 Wayback 捕获时间戳 (`YYYYMMDDhhmmss`)。
- **`statusCode`** — 为该次捕获记录的 HTTP 状态码(例如 `200`、`301`、`404`)。
- **`mimeType`** — 捕获时的内容类型(例如 `text/html`)。
- **`digest`** — Wayback 内容摘要。
- **`snapshotUrl`** — 可直接打开的 `web.archive.org/web/...` 链接,指向确切的已归档捕获。
## 💡 使用场景
- **SEO 迁移和 301 重定向映射** — 在网站迁移后恢复旧的或丢失的 URL,并重建完整的重定向映射,以保留链接权重。
- **已删除内容的恢复** — 查找并恢复那些已被移除但仍存在于存档中的博客文章、产品页面或文档。
- **OSINT 和安全研究** — 枚举目标域名的历史痕迹:旧的 endpoint、被移除的页面和被遗忘的子域名。
- **反向链接 / 链接回收** — 找出那些仍能获得反向链接的旧 URL,然后将它们重定向以收回链接价值。
- **查找遗留 endpoint** — 揭示那些不再出现在现网站点上的旧管理路径、遗留 API 和孤立页面。
- **网络考古与竞争研究** — 重现竞争对手的 URL 结构和内容在历年快照中的变化。
- **历史网络数据集** — 构建 URL / MIME / 捕获历史数据集,用于分析和机器学习。
## 🚀 快速开始
可以通过 **Apify Console**、**CLI**、**REST API / curl** 或 **JavaScript / Python** 客户端运行。至少提供一个域名;其他所有字段均为可选的过滤器。
### 1. Apify Console(无需代码)
1. 打开 **[Wayback Machine URL 提取器](https://apify.com/logiover/wayback-machine-url-extractor)** 并点击 **免费试用**。
2. 将一个或多个域名添加到 **Domains** 中(例如 `nasa.gov`、`bbc.com`)。
3. 可选择设置 **Match Type**、日期范围、HTTP 状态过滤器,或者调高 **Max Results Per Domain**。
4. 点击 **Start**,然后即可将输出 **Export** 为 JSON、CSV 或 Excel 格式。
### 2. Apify CLI
```
npm install -g apify-cli
apify login
apify call logiover/wayback-machine-url-extractor --input='{
"domains": ["nasa.gov"],
"matchType": "subdomains",
"maxResults": 5000
}'
```
### 3. API / curl
```
curl -X POST \
"https://api.apify.com/v2/acts/logiover~wayback-machine-url-extractor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"domains": ["example.com"],
"matchType": "subdomains",
"fromDate": "20100101",
"toDate": "20201231",
"filterStatus": "200",
"maxResults": 5000
}'
```
### 4. JavaScript (apify-client)
```
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('logiover/wayback-machine-url-extractor').call({
domains: ['bbc.com', 'cnn.com'],
matchType: 'host',
maxResults: 10000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} archived URLs`);
```
### 5. Python (apify-client)
```
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("logiover/wayback-machine-url-extractor").call(run_input={
"domains": ["nasa.gov"],
"matchType": "subdomains",
"filterStatus": "200",
"maxResults": 0,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Got {len(items)} archived URLs")
```
更多详细的方案请参阅 [`examples/`](./examples)。
## ⚙️ 输入
至少提供一个域名;其他所有字段均为可选。在 Console 中,某些字段是下拉菜单(`select`)。
| 字段 | 类型 | 默认值 | 描述 |
|-------|------|---------|-------------|
| `domains` | array | `["nasa.gov"]` | 一个或多个域名或完整 URL(例如 `nasa.gov`、`https://example.com`)。协议、`www.` 和路径会被规范化;末尾不支持通配符。 |
| `matchType` | select | `subdomains` | `subdomains`(主机名 + 所有子域名 + 路径,范围最广)、`host`(精确匹配主机名)、`domain`(精确匹配域名)、`prefix`(路径前缀)。 |
| `fromDate` | string | — | 可选的 `YYYYMMDD` 格式的捕获日期下限(例如 `20100101`)。留空 = 无下限。 |
| `toDate` | string | — | 可选的 `YYYYMMDD` 格式的捕获日期上限(例如 `20201231`)。留空 = 无上限。 |
| `filterStatus` | select | `` (全部) | 仅返回具有此 HTTP 状态的捕获(例如设为 `200` 可排除已失效/已重定向的捕获)。 |
| `maxResults` | integer | `5000` | 每个域名的最大唯一 URL 数量。设为 `0` = 无限制(大型网站可能会产生数十万条结果)。 |
| `proxyConfiguration` | object | Apify Proxy | 代理配置,建议使用以避免触发速率限制。 |
**示例 — 重定向映射(仅限特定日期窗口内状态为 200 的活跃页面):**
```
{
"domains": ["example.com"],
"matchType": "subdomains",
"fromDate": "20100101",
"toDate": "20201231",
"filterStatus": "200",
"maxResults": 5000
}
```
## 📤 输出
每个唯一的已归档 URL 占一行。概览表格会展示 url、domain、capturedAt、statusCode、mimeType 和 snapshotUrl。
| 字段 | 描述 |
|-------|-------------|
| `domain` | 此 URL 所属的规范化域名 |
| `url` | 原始的已归档 URL |
| `timestamp` | 原始的 14 位 Wayback 捕获时间戳 (`YYYYMMDDhhmmss`) |
| `capturedAt` | 捕获时间戳的 ISO 8601 格式 |
| `statusCode` | 为该次捕获记录的 HTTP 状态(例如 `200`、`301`、`404`,或 `-`) |
| `mimeType` | 捕获时记录的内容类型(例如 `text/html`) |
| `digest` | Wayback 内容摘要 |
| `snapshotUrl` | 指向 `web.archive.org` 上已归档快照的直接链接 |
### 输出示例
```
[
{
"domain": "nasa.gov",
"url": "http://www.nasa.gov/mission_pages/station/main/index.html",
"timestamp": "20120114043915",
"capturedAt": "2012-01-14T04:39:15.000Z",
"statusCode": "200",
"mimeType": "text/html",
"digest": "AB23CD45EF67GH89IJ01KL23MN45OP67",
"snapshotUrl": "https://web.archive.org/web/20120114043915/http://www.nasa.gov/mission_pages/station/main/index.html"
},
{
"domain": "nasa.gov",
"url": "http://www.nasa.gov/topics/earth/features/index.html",
"timestamp": "20150803121044",
"capturedAt": "2015-08-03T12:10:44.000Z",
"statusCode": "301",
"mimeType": "text/html",
"digest": "ZZ98YY76XX54WW32VV10UU98TT76SS54",
"snapshotUrl": "https://web.archive.org/web/20150803121044/http://www.nasa.gov/topics/earth/features/index.html"
}
]
```
## 🔗 集成与自动化
- **定时任务** — 使用 Apify **Scheduler** 定期重新运行,以跟踪域名归档痕迹随时间的增长情况。
- **Webhook** — 触发 `ACTOR.RUN.SUCCEEDED` webhook,以便自动执行下游步骤(重定向映射构建器、状态检查工具)。
- **Google Sheets** — 通过 Apify 的 Google Sheets 集成,将恢复的 URL 同步到实时电子表格中。
- **Zapier / Make / n8n / Pipedream** — 将恢复的 URL 输送到重定向映射工作流、爬虫程序或 Google Sheet 中。
- **云存储** — 通过 Apify API 将数据集导出到 S3 和其他存储服务。
## 📦 导出格式
每次运行的数据集均可一键导出为 **JSON、CSV、JSONL、Excel (XLSX)、XML** 和 RSS — 可以通过 Console 的 **Export** 按钮或通过 [Apify API](https://docs.apify.com/api/v2) 进行操作。
## ❓ 常见问题解答
### 如何从 Wayback Machine 获取网站的所有 URL?
将域名添加到 **Domains** 中,保持 `matchType` 为 `subdomains`,将 `maxResults` 设为 `0` 以获取所有内容,然后运行即可。该 Actor 会为每个唯一的已归档 URL 返回一行数据。
### 我可以在没有 API key 或不登录的情况下使用它吗?
可以。数据源是公开的,不需要 API key,也不需要登录。您只需为 Apify 的运行本身付费。
### 这是 Wayback Machine / CDX API 的替代品吗?
它是 Internet Archive 已归档 URL 索引的一个现成前端。您只需发送一个域名,即可获得一个干净、结构化且随时可导出的数据集,而无需手动构建查询、处理分页以及自己对捕获记录进行去重。
### 我能找到某个域名的旧页面或已删除的页面吗?
可以 —— 这是核心用例。即使 URL 从现有网站中被移除,存档仍会保留它们,因此被删除的帖子、已停用的产品页面和旧 endpoint 都会附带 `snapshotUrl` 出现。
### 如何将已归档的 URL 导出为 CSV 或 JSON 格式?
运行 Actor,然后将数据集下载为 CSV、JSON 或 Excel 格式(或通过 API 获取)。每个已归档的 URL 占一行,因此可以直接放入电子表格或 pipeline 中。
### 它能返回多少数据?
每个域名最多可达数万条 —— 将 `maxResults` 设为 `0` 即为无限制。结果会分页流式传输到数据集中,因此即使是拥有 10 万以上 URL 的域名也能正常运行,不会出现内存问题。
### 我可以按日期或 HTTP 状态进行过滤吗?
可以 —— 设置 `fromDate` / `toDate`(`YYYYMMDD`)以限制捕获窗口,并设置 `filterStatus`(例如 `200`)以仅保留具有特定 HTTP 状态的捕获。
### 在网站迁移后,我该如何构建 301 重定向映射?
提取该域名的所有已归档 URL 并将 `filterStatus` 设置为 `200`,然后将每个恢复的旧 URL 映射到其新目标地址,以重建链接权重。
### 不同的匹配类型有什么作用?
`subdomains` 会捕获主机名及其所有子域名和路径(范围最广),`host` 和 `domain` 会限制为精确的主机名,而 `prefix` 会匹配以给定路径前缀开头的 URL。
### 为什么有些 `statusCode` 的值是 `-`?
存档有时会在未存储状态码的情况下记录捕获(例如重访记录)。这些行仍然是有效的已归档 URL。
### 提取已归档的 URL 合法吗?
该 Actor 仅读取公开可用的存档数据 —— 与任何人都可以在 web.archive.org 上浏览的快照相同。它不执行登录,也不访问任何私密数据。您需对合法合规使用负责。
## 🧭 相关 Actor
- **[网站变更监控](https://apify.com/logiover/website-change-monitor)** — 检测并跟踪任何网页上的内容更改。
- **[批量 WHOIS 和 RDAP 查询](https://apify.com/logiover/bulk-whois-rdap-lookup)** — 获取批量域名所有权和注册数据。
👉 浏览 **[Apify Store 上的所有 logiover Actor](https://apify.com/logiover)**。
📄 **仅限文档** — 此代码库不包含源代码。该 Actor 在 Apify 平台上运行。
▶️ **运行地址:** https://apify.com/logiover/wayback-machine-url-extractor
MIT 许可证 © 2026 logiover
标签:Apify, ESC4, OSINT, SEO, 命令控制, 数据可视化, 数据采集, 网络归档, 逆向工具