# Crawl API：把整个网站转换为 Markdown 文件

> 用于 RAG 的 Crawl API，可把整个网站转换为 Markdown：每个任务最多 10,000 页，遵循 sitemap 和 robots.txt，起价 US$0.07/千页。加密货币支付。

- URL: https://webreaderapi.com/zh/crawl-api/
- 最后更新: 2026-10-22
- 发布者: WebReaderAPI (https://webreaderapi.com)

给出起始 URL 和页数上限。爬虫会遵循网站的 sitemap，并跟踪同一域名内的链接，把每个页面读取为 Markdown，再逐页把结果交给你。每页一个积分。

**快速回答 — 如何整站抓取一个网站，并把每个页面都获取为 Markdown？**

使用 crawl API：你发送起始 URL 和上限，它把网站的每个页面以 Markdown 返回。**WebReaderAPI** 每个任务在单一域名内最多抓取 10,000 页，遵循 sitemap、robots.txt 和 Crawl-delay，每读取一页收取一个积分，截至 2026 年 10 月起价为 US$0.07/千页。被 robots.txt 拒绝的页面免费。无需 KYC；加密货币支付。

## Crawl API 一览

| 属性 | 值 |
| --- | --- |
| 发起整站抓取 (crawl) | 用 `url`、`limit`、`max_depth`、`include_paths`、`exclude_paths` 调用 `POST https://webreaderapi.com/api/v1/crawl` |
| 获取结果 | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`，使用 cursor 分页 |
| 范围 | 每个任务抓取一个网站，最多 10,000 页，遵循其 sitemap、robots.txt 和 Crawl-delay |
| 多个独立 URL | `POST https://webreaderapi.com/api/v1/batch`：每个批量任务最多 100 个 URL |
| 计费 | 1 积分 = 读取 1 个页面且无需浏览器；当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求，或被网站 robots.txt 拒绝的请求，不扣费 |
| 站长 | 我们遵守 robots.txt：我们的爬虫以 WebReaderAPI 标识自身，遵循专为其或为所有爬虫编写的规则，不读取网站禁止的页面。被拒绝的页面不扣费 |
| 价格 | US$14.25 只需 50,000 个网页，US$50 只需 500,000 个网页 |

## 整站抓取 (crawl) 任务是如何运行的？

整站抓取 (crawl) 是一个后台任务，因为读取数百个页面所需的时间远超一次 HTTP 请求应有的时长。

1. **启动：** 使用起始 URL 和你的限制参数调用 `POST https://webreaderapi.com/api/v1/crawl`，你会立即得到一个 `job_id`。
2. **发现：** 爬虫读取网站的 robots.txt 和 sitemap，然后沿同一域名内的链接按广度优先遍历，最多至 `max_depth`。
3. **读取：** 每个允许访问的页面都使用与 `/read` 相同的选项读取：Markdown、正文提取、需要时进行渲染。
4. **收集：** 在任务运行期间，轮询 `GET https://webreaderapi.com/api/v1/jobs/{job_id}` 并用 cursor 分页获取结果，或在任务处于 `done` 状态后获取。

The job stops at your `limit`, so you never pay for more pages than you asked for.

*Python：将文档站点整站抓取 (crawl) 为 Markdown 文件*

```python
import os
import pathlib
import re
import time

import requests

API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}

job = requests.post(
    API + "/crawl",
    headers=HEADERS,
    json={"url": "https://docs.example.com/", "limit": 500, "max_depth": 4, "include_paths": ["/guide/*"]},
    timeout=60,
).json()

out = pathlib.Path("docs_md")
out.mkdir(exist_ok=True)
cursor, delay = None, 5
while True:
    params = {"cursor": cursor} if cursor else {}
    page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
    for item in page.get("results", []):
        if "markdown" in item:
            name = re.sub(r"[^a-z0-9]+", "-", item["url"].lower()).strip("-")[:120]
            (out / (name + ".md")).write_text(item["markdown"], encoding="utf-8")
    cursor = page.get("next_cursor")
    if page["status"] == "done" and not cursor:
        break
    if not cursor:
        time.sleep(delay)
        delay = min(delay * 2, 60)
print("credits used:", page.get("credits_used"))

```

## 爬虫会访问哪些页面，又会跳过哪些页面？

它只停留在起始 URL 所在的域名内，并跳过网站要求 robots 不要访问的任何内容。具体如下：

- **仅限同一域名。** 指向其他域名的链接会列在结果中，但不会被读取。
- **先看 robots.txt。** 对 `WebReaderAPI` 或对所有 robots 禁止访问的页面会被跳过，且不扣费。
- **遵守 Crawl-delay。** 如果网站设置了该项，爬虫会在两个页面之间等待相应时间，因此大型网站可能需要更长时间。
- **你的过滤器。** `include_paths` 和 `exclude_paths` 接受诸如 `/blog/*` 这样的简单模式；用它们来避开标签页、搜索页和归档页。
- **去除重复。** 同一页面若可通过两个 URL 到达（例如带有跟踪参数），当网站声明了 canonical URL 时只读取一次。

## 我应该使用整站抓取 (crawl) 还是批量读取？

当你知道网站但不知道具体页面时，使用整站抓取 (crawl)；当已经拥有 URL 列表时，使用批量读取。整站抓取 (crawl) 会从 sitemap 和链接中发现页面。批量读取则精确读取你发送的 URL，每个任务最多 100 个，可跨任意数量的网站。

对于知识库的每周刷新，常见模式是先执行一次整站抓取 (crawl) 来建立索引，然后对 sitemap 中 `lastmod` 发生变化的页面进行批量读取。这样每周的成本只落在真正发生变动的页面上。

## 整站抓取 (crawl) 一个网站需要多少费用？

每读取一个页面消耗 1 个积分，需要浏览器的页面消耗 2 个。一个 1,500 页、在服务端渲染的文档站点花费 1,500 积分；同一站点若构建为单页应用，花费可能高达 3,000 积分。

截至 2026 年 10 月，三个典型任务：一个 300 页的产品手册可用 10,000 个网页 积分包（US$3.75）；十个各 2,000 页的文档站点可用 50,000 个网页（US$14.25）；一个 400,000 页的归档可用 500,000 个网页（US$50）。被跳过和失败的页面免费。

## 哪种积分包适合整站抓取 (crawl)？

根据页面数量确定积分包大小，然后为需要浏览器的页面留出余量。积分永不过期，剩余积分可用于下一次整站抓取 (crawl)。

| 套餐 | 数量 | 价格 | 单价 |
| --- | --- | --- | --- |
| 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 |
| 入门版 | 50,000 个网页 | US$14.25 | US$0.28/千页 |
| 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 |
| 扩展 | 500,000 个网页 | US$50 | US$0.10/千页 |

所有套餐均包含: 正文提取 · 需要时渲染 JavaScript · 失败和被拒绝的页面不收费 · 积分永不过期

**付款前须知**

- 最低充值 US$25。 用加密货币充值一次，即可从余额购买任意套餐。
- 您的余额没有到期日，可随时购买网页积分。如果某个积分包的价格低于最低充值金额，您仅为达到该最低金额而额外充入的部分，可在付款后 30 天内按需退回，以 USDT 或 USDC 形式返还，前提是这部分金额尚未使用。其他余额不予退款，除非法律另有规定.
- 付款在区块链上核实后即到账。 网络确认的通常时间： BTC 约 20 分钟 · USDT TRC-20 约 1 分钟 · USDT ERC-20 约 5 分钟 · USDC ERC-20 约 5 分钟 · ETH 约 5 分钟 · SOL 约 1 分钟 · LTC 约 15 分钟

## 整站抓取 (crawl) API：常见问题

### 一次整站抓取 (crawl) 可以读取多少个页面？

每个任务最多 10,000 页，且限于起始 URL 所在的域名。对于更大的网站，可用 `include_paths` 将其拆分为多个任务，例如每个栏目一个任务。

### 爬虫会使用 sitemap 吗？

会。它读取 robots.txt 中列出的或位于常规位置的 sitemap，然后沿其读取的页面上的链接继续抓取。如果 robots.txt 允许，仅由 sitemap 列出的页面仍会被读取。

### 我可以整站抓取 (crawl) 一个屏蔽 AI 爬虫的网站吗？

使用 WebReaderAPI 不行。如果 robots.txt 禁止我们的爬虫或所有 robots 访问，那些页面会被跳过且不扣费。如果网站声明了 `Content-Signal: ai-input=no`，我们不会为你读取。我们从不试图绕过此类选择。

### 整站抓取 (crawl) 仍在运行时，我能获取结果吗？

可以。`GET https://webreaderapi.com/api/v1/jobs/{job_id}` 会返回截至目前已读取的页面以及一个 cursor；持续分页直到任务处于 `done` 状态且不再有 cursor 为止。

### 整站抓取 (crawl) 读取的页面会超过我的限制吗？

不会。积分按页计算，任务在你设定的 `limit` 达到时停止。因 robots.txt 而跳过的页面以及失败的页面不消耗积分。

---

WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API，可将任何公开网页转换为干净的 Markdown，用加密货币支付，无需上传身份证件。预付费积分低至 US$0.07/千页，永不过期，且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。
