测试
10,000 个网页
US$3.75
US$0.38/千页
- 用你的真实 URL 试一试
- 与最大积分包使用同一个 API
- 积分永不过期
用例 · 迁移与导出 · /crawl
迁移到静态站点生成器、文档平台或知识库,往往从一个问题开始:如何把我的页面导出为干净的 Markdown?整站抓取一个任务就能做到,标题、日期和 URL 都保留在 front matter 中。
快速回答
如何把整个网站转换为 Markdown?
抓取你的站点,把每个页面的正文读作 Markdown,并为每个页面写一个 .md 文件,在 front matter 中记录标题、URL 和日期。WebReaderAPI 每个任务可抓取多达 10,000 页,遵循你的 sitemap 和 robots.txt,截至 2026 年 10 月,从 US$0.07/千页 起每页收取一个积分。下面的 Python 脚本会写出这些文件。无需 KYC;用加密货币支付。
| Endpoint | POST https://webreaderapi.com/api/v1/crawl,结果来自 GET https://webreaderapi.com/api/v1/jobs/{job_id} |
|---|---|
| 范围 | 每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay |
| 按页 | 正文的 Markdown,加上标题、描述、作者、日期和语言 |
| 整页 | 需要时 main_content=false 会保留导航和页脚 |
| 你的 robots.txt | 必须允许 WebReaderAPI 才能导出这些页面 |
| 价格 | US$3.75 仅需 10,000 个网页;积分永不过期 |
只要内容需要离开渲染它的系统时就适用。常见情况:
无论哪种情况,你需要的都是文字和结构,而不是它们周围的主题。
import os
import pathlib
import time
from urllib.parse import urlparse
import requests
API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
SITE = "https://www.example.com/"
OUT = pathlib.Path("export")
def target_path(url):
path = urlparse(url).path.strip("/") or "index"
return OUT / (path + ".md")
def front_matter(page):
fields = {"title": page.get("title", ""), "source": page["final_url"], "date": page.get("published_at") or ""}
lines = ["---"] + [key + ": " + repr(value) for key, value in fields.items()] + ["---", ""]
return "\n".join(lines)
job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 2000, "max_depth": 5}, timeout=60).json()
cursor, delay, written = None, 5, 0
while True:
params = {"cursor": cursor} if cursor else {}
batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
for page in batch.get("results", []):
if "markdown" not in page:
continue
dest = target_path(page["final_url"])
dest.parent.mkdir(parents=True, exist_ok=True)
dest.write_text(front_matter(page) + page["markdown"] + "\n", encoding="utf-8")
written += 1
cursor = batch.get("next_cursor")
if batch["status"] == "done" and not cursor:
break
if not cursor:
time.sleep(delay)
delay = min(delay * 2, 60)
print(written, "files in", OUT)
像脚本那样在文件路径中镜像 URL 路径:/guides/setup/ 变成 export/guides/setup.md。把原始 URL 保留在 front matter 的 source 中,这样迁移后可以设置重定向,并检查没有丢失内容。
Markdown 中的链接仍指向你当前的 URL。移动之后,一次性替换域名或路径前缀,然后测试部分页面。表格和代码块保持为 Markdown,因此大多数静态生成器无需改动即可渲染。
在导出期间允许我们的 token。WebReaderAPI 只读取 robots.txt 允许 WebReaderAPI 或所有机器人读取的内容,包括你自己的站点。添加一个类似 User-agent: WebReaderAPI 的组并包含 Allow: /,运行抓取,然后可以再移除它。
我们的爬虫页面显示了确切的配置行,以及你的服务器日志会显示的 User-Agent。仍被禁止的页面会被跳过,且不计费。
每页一个积分,需要浏览器显示文本的页面两个。一个 2,000 页、在服务端渲染的站点一次性花费 2,000 积分;同样的站点如果是 JavaScript 应用,最多可能花费 4,000。截至 2026 年 10 月,两者都能放在 10,000 个网页(US$3.75)中。
一个 50,000 页的站点需要多个任务,用 include_paths 按栏目拆分,可放在 100,000 个网页(US$21.75)中。导出后剩余的积分会留在你的账户中,供以后刷新使用。
数一下你的页面数,如果网站需要 JavaScript 渲染就把数量翻倍,然后选它上面那一档的积分包。积分永不过期。
10,000 个网页
US$3.75
US$0.38/千页
50,000 个网页
US$14.25
US$0.28/千页
100,000 个网页
US$21.75
US$0.22/千页
所有套餐均包含: 正文提取 · 需要时渲染 JavaScript · 失败和被拒绝的页面不收费 · 积分永不过期
可以。在整站抓取 (crawl) 选项里设置 main_content=false,每个文件都会保存转换为 Markdown 的完整页面。大多数迁移更偏好只保留正文,因为新主题会自带导航。
不会。使用 include_images=true 时,图片链接会连同 alt 文本保留在 Markdown 中;如果迁移需要图片文件本身,请用你自己的脚本下载。
只能导出其 robots.txt 允许的公开页面,且仅限于其条款和法律允许的用途。对于迁移或备份,请导出你自己的网站或所有者同意的网站。
每个整站抓取 (crawl) 任务最多 10,000 页,且限于一个域名内。更大的网站请用 include_paths 按栏目拆分,并运行多个任务。
低至 US$0.07/千页 · 无需 KYC
获取 API 密钥