无需 KYC — 无身份证、无自拍、无证件。加密货币支付:BTC, USDT, USDC, ETH, SOL, LTC
语言: 简体中文
获取 API 密钥

指南 · how-to · 2026 年 10 月

如何将网页转为 Markdown 供 LLM 使用

复制粘贴适用于单个页面。如果你运行自己的爬虫,库就可以胜任。当你希望每页一次请求时,API 就可以胜任。下面介绍如何选择、好的输出长什么样,以及可复用的代码。

最后更新:

快速回答

如何将网页转为 Markdown 供 LLM 使用?

抓取页面,只保留正文,然后把标题、列表、表格和链接转换为 Markdown,并将长度控制在你模型的预算之内。你可以手动完成、使用开源库完成,或通过一次 API 调用完成:WebReaderAPI 返回 Markdown 和元数据,每页一个积分,自 2026 年 10 月起为 US$0.07/千页。无需 KYC;加密货币支付。

从网页获取 Markdown 的三种方式

手动从浏览器或其阅读器视图复制文本;适用于少量页面
开源库在你自己的抓取器中使用 Readability、Trafilatura、MarkItDown 或 Crawl4AI
网页读取 APIGET https://webreaderapi.com/api/v1/read?url=… 返回 Markdown、标题、作者和日期
长度控制在 WebReaderAPI 上使用 max_chars,或在转换后自行截断文本
JavaScript 页面需要无头浏览器;需要时 WebReaderAPI 会渲染它们,消耗 2 积分

我应该用哪种方法?

按规模以及你想自行运行多少基础设施来选择。

方法适合你需要负责
复制粘贴少量页面、一次性提示手动清理
代码中的库稳定规模、完全掌控抓取、浏览器、robots.txt、PDF、重试
网页读取 API读取大量站点的 agent 和流水线只需发出请求和接收结果

库能给你掌控力,且不按页收费。代价在运维:JavaScript 页面需要无头浏览器,还要处理 robots.txt 检查、字符集和重定向,并为 PDF 单独开一条路径。API 则把这一切并入一次 HTTP 调用。

好的 Markdown 应保留什么,又该丢弃什么?

好的 Markdown 会保留每一个承载含义的元素,丢弃一切只为排版或营销而存在的内容。

  • 保留标题为 #、## 和 ###:它们告诉模型(以及你的分块器)每个主题从哪里开始。
  • 保留列表和表格为 Markdown 列表和竖线表格,让步骤和数字保持可读。
  • 保留链接为 [text](url):它们让助手能引用并追踪来源。
  • 保留代码块并加围栏,页面显示语言时一并标出。
  • 丢弃菜单、Cookie 提示、广告、相关文章组件和页脚:它们在每个页面重复出现,会污染检索。

在你自己的几个真实页面上检查结果。提取工具在论坛、长表格和包含多篇文章的页面上分歧最大。

Markdown 比 HTML 小多少?

通常小得多,因为页面附属元素和标记都消失了。当 Cloudflare 于 2026 年 2 月 12 日推出面向 agent 的 Markdown 功能时,其示例页面从 HTML 的 16,180 token 降至 Markdown 的 3,150 token,约减少 80%。

你自己的比例取决于站点。长文章按百分比算比被沉重模板包裹的短页面缩减得少。在确定预算之前,先在你的来源上测量。

如何让页面控制在我的模型 token 预算之内?

在文本到达模型之前先设上限,然后沿标题拆分剩余部分。使用 WebReaderAPI 时,max_chars 参数会按设定长度(1,000 到 500,000 个字符之间)截断 Markdown。word_count 字段会告诉你完整文章有多长,agent 据此可判断读完剩余部分是否值得。

用于检索时,先按标题拆分,然后再截断过长的小节。以自身标题开头的小块会保留其主题;从长页面中间某句话截断的小块则不会。

Python:将页面读取为 Markdown 并按标题拆分成块
import os
import re

import requests

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


def page_to_chunks(url, max_chars=60000, chunk_len=1500):
    params = {"url": url, "format": "markdown", "max_chars": max_chars}
    resp = requests.get(API, headers=HEADERS, params=params, timeout=90)
    data = resp.json()
    if resp.status_code != 200:
        print("not read:", data["error"]["code"])
        return []
    chunks = []
    for section in re.split(r"\n(?=#{1,3} )", data["markdown"]):
        section = section.strip()
        while section:
            chunks.append(section[:chunk_len])
            section = section[chunk_len:]
    return [{"text": c, "source": data["final_url"], "title": data["title"]} for c in chunks]


if __name__ == "__main__":
    for chunk in page_to_chunks("https://example.com/guides/compost")[:3]:
        print(chunk["title"], "|", chunk["text"][:80])

常见问题有哪些,我该如何发现?

四类问题导致了大多数糟糕的转换:

  • 输出为空。 页面用 JavaScript 构建内容。查看较低的 word_count;在浏览器中渲染页面,或设置 render=true。
  • 结果中出现 Cookie 或同意文本。 提取器保留了横幅。优先使用正文提取,并检查每条结果的前几行。
  • 表格缺失。 有些站点把表格画成图片或 canvas 元素;任何文本提取器都读不了这些。
  • 返回拒绝而不是页面。 站点在 robots.txt 中禁止了 robots 或拒绝了请求。请尊重它:向所有者申请访问权限,或在站点提供官方 API 或 feed 时使用它。

这些问题都不会靠更快重试解决。读懂错误,然后更换方法或来源。

网页转 Markdown:常见问题

对 LLM 来说,Markdown 比纯文本更好吗?

对大多数页面来说,是的。Markdown 以极小的 token 开销保留标题、列表、表格和链接,因此模型能看到结构并引用来源。纯文本略短,但会丢失这些结构。

我能转换整个网站,而不只是一个页面吗?

可以。抓取它并转换每个页面。WebReaderAPI 的 crawl API 在一个任务中同时完成两者:每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay。

我能用同样的方式转换 PDF 吗?

可以,只需把 PDF 的 URL 发送到同一个 endpoint。最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。

登录之后的页面怎么办?

不要通过第三方服务转换它们,除非它们是你自己的、且由你自行导出。WebReaderAPI 只读取公开页面,从不登录账户。

有免费的办法吗?

开源库可免费使用并在你自己的机器上运行。WebReaderAPI 没有免费套餐;其最小套餐为 10,000 个网页,价格 US$3.75,用加密货币支付,无需 KYC。

来源 (1)
  1. 推出面向 agent 的 Markdown — Cloudflare (2026-02-12)

低至 US$0.07/千页 · 无需 KYC

获取 API 密钥