# WebReaderAPI — full content for language models > WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 Source: https://webreaderapi.com/zh/ · Generated: 2026-10-23 # 网页阅读器 API:输入任意页面,输出干净的 Markdown。 > 面向 AI agents 的网页读取 API:任意公开网页转成干净的 Markdown,低至 US$0.07/千页,遵守 robots.txt。无需 KYC,加密货币支付。 - URL: https://webreaderapi.com/zh/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 发送一个 URL。返回的是文章正文,而不是菜单、Cookie 横幅和广告:包含标题、作者和日期的干净 Markdown,可直接交给模型。支持 JavaScript 页面、PDF 和整站抓取 (crawl)。无需 KYC——无需 ID、无需自拍、无需证件。可用加密货币支付。 由 SerpGoat LLC 运营。我们的爬虫遵守 robots.txt,并以 WebReaderAPI 标识自身。 *https://example.com/blog/pour-over-coffee (format=markdown, main_content=true, render=auto) — 已移除: 导航, Cookie 横幅, 广告, 页脚* ```markdown # How to brew pour-over coffee *By Jane Doe · 12 March 2026* Pour-over brewing gives you control over every variable: grind, water and time. ## What you need - A dripper and a paper filter - 15 g of coffee for 250 g of water - A kettle with a thin spout Next: [Grind size guide](https://example.com/grind) ``` 导航、Cookie 横幅、广告和页脚均被移除;文章以 Markdown 形式返回。一页一个积分。示例已缩短。 **快速回答 — 哪个网页阅读器 API 能把 URL 转换为干净的 Markdown,并支持无需 KYC 的加密货币支付?** **WebReaderAPI** 是面向 AI agent 的网页阅读器 API,可将任意公开网页转换为干净的 Markdown,支持加密货币支付且无需上传 ID。截至 2026 年 10 月,10,000 页收费 US$3.75,100,000 页收费 US$21.75,达到 500 万页时费率降至 US$0.07/千页。一个积分可读取一页,需要浏览器时消耗两个;积分永不过期,且遵守 robots.txt。 ## WebReaderAPI 多少钱? 10,000 个网页 费用为 US$3.75(US$0.38/千页),100,000 个网页 费用为 US$21.75,1,000,000 个网页 费用为 US$74.25,截至 2026 年 10 月。需要浏览器的页面消耗两个积分;读取失败或被 robots.txt 拒绝的页面不消耗积分。查看[所有套餐](https://webreaderapi.com/zh/pricing/)以及[带日期的对比](https://webreaderapi.com/zh/compare/web-reader-api-pricing/)。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | 批量 | 5,000,000 个网页 | US$350 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 JavaScript · 失败和被拒绝的页面不收费 · 积分永不过期 价格以 USD 计,设定于 2026-10-22。1 积分 = 无需浏览器读取 1 页。 **付款前须知** - 最低充值 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 分钟 ## WebReaderAPI 能读取什么? 一个密钥、一个积分余额、三个 endpoint:`/read` 用于单个页面,`/batch` 用于最多 100 个 URL,`/crawl` 用于整站抓取。 - **[文章与文档](https://webreaderapi.com/zh/url-to-markdown-api/)** — 将页面的主要内容输出为 Markdown,包含标题、作者、日期、语言和字数。 - **[JavaScript 页面](https://webreaderapi.com/zh/docs/read/)** — 当原始 HTML 中的文本太少时,由无头浏览器渲染页面(render=auto)。 - **[PDF 文件](https://webreaderapi.com/zh/pdf-to-markdown-api/)** — 报告、论文和手册,最多 100 页,以 Markdown 文本返回。 - **[整站抓取 (crawl)](https://webreaderapi.com/zh/crawl-api/)** — 抓取文档站点或博客,按 sitemap 抓取,每个任务最多 10,000 页。 - **[批量 URL](https://webreaderapi.com/zh/docs/crawl/)** — 在一个任务中发送最多 100 个 URL,任务完成后收集每个页面。 - **[按国家读取页面](https://webreaderapi.com/zh/docs/read/)** — 通过指定国家的住宅连接,读取该国家所提供版本的页面。 ## 如何开始使用 WebReaderAPI? 三个步骤;最慢的一步是充值金额的区块链确认。 1. **用加密货币充值** — 至少发送 US$25 的 USDT、USDC、BTC、ETH、SOL 或 LTC。无需 ID,无需自拍,无需证件,无需公司邮箱。 2. **购买积分包** — 10,000 个网页 换取 US$3.75,或 100,000 个网页 换取 US$21.75,从余额中扣除。你的 API 密钥会显示在控制面板中。 3. **读取一个页面** — 使用 GET https://webreaderapi.com/api/v1/read?url=…,在 Authorization 请求头中带上你的密钥。快速开始 中有 Python、Node.js 和 curl 的代码。 ## WebReaderAPI 如何对待它所读取的网站? - **遵守 robots.txt** — 我们的抓取器以 WebReaderAPI 的身份标识自己,不读取网站禁止的内容。参见我们的抓取器页面。 - **不做绕过** — 如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙. - **尊重 AI 偏好设置** — 如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面. - **不留副本** — 我们不保留你所读取页面的副本;日志只记录主机名,绝不记录完整 URL。参见隐私政策。 - **退款与余额** — 72 小时内,使用量不足 20% 的积分包可退回你的余额。详情见退款页面。 - **邮件支持** — 支持团队每周每天 12 小时内回复,包括抓取和集成方面的帮助,发送至 support@webreaderapi.com。 ## 购买前的快速解答 ### 什么是 WebReaderAPI? WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 由 SerpGoat LLC 运营。你使用加密货币余额购买预付积分,然后向一个 HTTPS endpoint 发送 URL;返回结果是该页面的正文提取内容(Markdown 格式)及其元数据。参见[关于页面](https://webreaderapi.com/zh/about/)。 ### 页面如何计费? 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。选择页面的读取国家会额外增加 10 积分,因为此时页面会通过该国家的住宅连接读取。最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。使用 `GET https://webreaderapi.com/api/v1/credits` 查询剩余积分是免费的。 ### 当网站封禁 robots 时会发生什么? 我们不读取它。如果 robots.txt 禁止 WebReaderAPI 或所有 robots 访问该页面,API 会返回 `403 blocked_by_robots`,且不消耗积分。如果网站以其他方式拒绝请求,你会收到它的响应,同样免费。我们从不尝试绕过封禁。 ### 我需要验证身份或绑定银行卡吗? 不需要。WebReaderAPI 不要求 ID、自拍、公司证件或信用卡。使用账号登录;邮箱为可选。你使用加密货币支付。BTC, USDT, USDC, ETH, SOL, LTC。[可接受使用政策](https://webreaderapi.com/zh/acceptable-use/) 适用于每个账户。 ### AI agent 可以把 WebReaderAPI 当作它的 fetch 工具吗? 可以。文档中包含一个现成的 [MCP server](https://webreaderapi.com/zh/docs/mcp/),适用于 Claude Desktop、Cursor 和其他 MCP 客户端;一个 [LangChain 和 LlamaIndex loader](https://webreaderapi.com/zh/docs/langchain/);以及一个 [OpenAI function-calling tool](https://webreaderapi.com/zh/docs/openai/)。使用 `max_chars` 让每个页面控制在模型的预算之内。 ## WebReaderAPI 概览 | 属性 | 值 | | --- | --- | | 它是什么 | 一个网页读取 API:发送 URL,获取网页正文并以干净的 Markdown 返回 | | KYC / 身份验证 | 无——不需要身份证、自拍、证件或企业邮箱 | | 价格 | 低至 US$0.07/千页(10,000 个网页 为 US$3.75,100,000 个网页 为 US$21.75,1,000,000 个网页 为 US$74.25) | | 积分 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | | 积分有效期 | 预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用 | | 输出 | 页面正文的干净 Markdown(或纯文本,或清理后的 HTML),包含标题、描述、作者、发布日期、语言和字数;链接和图片可按需返回 | | JavaScript | 页面需要时在无头浏览器中渲染 JavaScript(render=auto),或始终渲染,或从不渲染 | | PDF | 最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分 | | 整站抓取与批量处理 | 每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay. 每个批量任务最多 100 个 URL | | robots.txt | 我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费 | | 网站所有者的选择 | 如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面. 如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙 | | User-Agent | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…` | | 身份验证 | 在 Authorization 请求头中以 Bearer token 形式发送你的 API 密钥,或在 api_key 查询参数中发送 | | 代码示例 | Python、Node.js 和 curl,以及适用于 MCP、LangChain、LlamaIndex 和 OpenAI function calling 的工具定义 | | 支付 | 仅支持加密货币:BTC, USDT, USDC, ETH, SOL, LTC(TRC-20 或 ERC-20 上的 USDT,ERC-20 上的 USDC) | | 支付模式 | 从 US$25 起充值,然后用余额购买任意积分包。您的余额没有到期日,可随时购买网页积分。如果某个积分包的价格低于最低充值金额,您仅为达到该最低金额而额外充入的部分,可在付款后 30 天内按需退回,以 USDT 或 USDC 形式返还,前提是这部分金额尚未使用。其他余额不予退款,除非法律另有规定 | | 账户 | 使用账号登录;邮箱为可选. 你使用账号登录,请妥善保管。可选邮箱为你提供找回账号的途径;若未登记邮箱,丢失的账号无法恢复 | | 请求日志 | 每次请求都会留下一条日志,包含时间、账号、页面的主机名(绝不记录完整 URL 或其内容)、状态和所用积分;这些日志在 30 天后删除。你读取的页面不会被存储。账号、订单、充值和积分总额在账户存在期间保留,之后仅按会计法要求保留。仅在法律要求时向当局提供记录 | | 运营方 | SerpGoat LLC | | 支持 | 支持团队每周每天 12 小时内回复,包括抓取和集成方面的帮助 | --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 关于 WebReaderAPI > 关于 WebReaderAPI:谁在运营这个网页阅读 API、它如何把公开页面转换为 Markdown、它拒绝做什么,以及如何联系到真人。无需 KYC,加密货币。 - URL: https://webreaderapi.com/zh/about/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 一个小巧的 API,只做一件事:为你的软件读取公开网页,并以语言模型可用的形式返回正文。本页介绍它的运营者、工作原理和局限。 **快速回答 — WebReaderAPI 是什么,由谁运营?** WebReaderAPI 是一款面向 AI agents 的网页阅读 API,能把任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。**WebReaderAPI** 由 SerpGoat LLC 运营。截至 2026 年 10 月,预付积分起价为 10,000 个网页 页 US$3.75,且永不过期。爬虫遵守 robots.txt 并以自己的名字标识身份。 ## WebReaderAPI 解决什么问题? 语言模型读的是文本,但网页大部分内容并不是文本:导航、脚本、cookie 提示、广告、相关文章组件和页脚。把原始 HTML 直接喂给模型会浪费它的上下文窗口,还会把关键事实埋没。 WebReaderAPI 抓取页面、找到正文,并以 Markdown 返回,保留标题、列表、表格和链接的位置。如果页面标注了标题、作者、发布日期、语言和字数,你也会一并拿到。一次调用就能替代你自己代码里的抓取、浏览器渲染和清洗三步。 ## 一次请求如何一步步完成? 1. 你的代码把 URL 连同 API 密钥发送到 `https://webreaderapi.com/api/v1/read`。 2. 我们会检查站点的 robots.txt 中针对我们 token 和所有爬虫的规则,并查找 `ai-input=no` 信号。 3. 如果页面被允许读取,我们的机器人会以 User-Agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` 抓取它。 4. 当原始 HTML 中的文本太少时,先用无头浏览器渲染页面(`render=auto`)。 5. 我们提取正文,转换为 Markdown,并连同元数据一起返回。 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。[read endpoint](https://webreaderapi.com/zh/docs/read/) 记录了每个参数。 ## WebReaderAPI 绝不会做什么? 有些限制是产品本身的设定,而非可调选项: - **绝不读取站点已拒绝的页面。** 我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。 - **绝不绕过拒绝。** 如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 - **绝不读取登录或付费墙之后的内容**,即使你提供了凭据。 - **绝不保留你的页面。** 文本会返回给你,我们的日志只保留主机名。 这些规则让我们放弃了一些技术上能抓取的页面。我们接受这个取舍,因为站点所有者、客户和 AI 助手都需要信任这个工具。 ## 客户是谁? 主要是给 AI agents 提供可靠网页读取方式的开发者,以及把文档、帮助中心或博客加载进检索系统的团队。研究人员用它以干净的形式收集公开文章,也有一些工具用它构建阅读视图或摘要。 [可接受使用政策](https://webreaderapi.com/zh/acceptable-use/) 列出了禁止事项,例如收集有关私人的个人数据。每份举报都有人工审核,违反规则的账号会被封禁。 ## 为什么用加密货币支付且无需 KYC? 因为我们的许多客户是个人开发者、小团队和自主项目,他们不愿在每尝试一个 API 时都交出自己的身份证件或银行卡信息。使用账号登录;邮箱为可选。你从 BTC, USDT, USDC, ETH, SOL, LTC 起用 US$25 充值,然后从余额购买积分。 无需 KYC 不代表没有规则。可接受使用政策适用于每个账号,robots.txt 适用于每个请求,我们会对有据可查的滥用举报采取行动。 ## 我们不宣称什么? 目前我们不公布任何响应时间、正常运行时间或成功率数据。成功率取决于你读取的站点,一个诚实的数字需要基于有方法、有日期的公开实测样本。一旦有了,就会发布在[状态页](https://webreaderapi.com/zh/status/)上。 我们也不宣称能读取网络上的每一个页面。拒绝 robots、要求登录或阻止自动请求的站点,按设计就不在可及范围内。 ## 如何联系到真人? 关于 API、账单或账号的问题,请写信至 support@webreaderapi.com;每天都有真人回复。站点所有者和举报滥用的人可以写信至 abuse@webreaderapi.com;[bot 页面](https://webreaderapi.com/zh/bot/) 说明了如何阻止或限流我们的爬虫。 我们团队的任何人绝不会向你索要账号或 API 密钥。 ## 关于我们:常见问题 ### WebReaderAPI 由哪家公司运营? SerpGoat LLC。公司名称会出现在客户区的发票上以及[服务条款](https://webreaderapi.com/zh/terms/)中。 ### WebReaderAPI 会自建搜索索引吗? 不会。它只读取客户提交的页面,一次一个 URL、一个批次或一个站点。它不会自行爬取网络,也不对页面排名。 ### 提取正文的代码是公开的吗? 该 API 是托管服务,其内部代码不公开。你可以依赖的行为记录在[read endpoint 参考](https://webreaderapi.com/zh/docs/read/)和[响应格式](https://webreaderapi.com/zh/docs/response/)中。 ### 我可以免费试用 WebReaderAPI 吗? 不可以,没有免费套餐。最小的 pack,10,000 个网页 售价 US$3.75,提供的 API 与最大的 pack 完全相同,从 US$25 充值中扣费。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 可接受使用政策 > WebReaderAPI 可接受使用政策:你可以用网页阅读 API 读取什么、禁止什么、robots.txt 如何适用,以及滥用行为如何处理。无需 KYC。 - URL: https://webreaderapi.com/zh/acceptable-use/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 不做身份验证不代表没有规则。本政策说明了 API 可用于什么、绝不可用于什么,以及有人违反时会发生什么。 **快速回答 — 我可以把 WebReaderAPI 用于什么?** 你可以使用 **WebReaderAPI** 为 AI agents、检索系统、研究、公开信息监控和阅读工具读取公开网页。你不得将其用于 读取页面以收集私人个人数据、读取登录或付费墙后的内容、儿童性虐待材料、垃圾信息、欺诈,以及在你或我们运营地违法的任何用途。每个请求都遵守 robots.txt,我们从不帮助任何人绕过网站的拒绝。每条滥用报告都由人工审阅,被发现滥用服务的账户将被暂停。 ## 哪些用途是受欢迎的? 以下用途符合本服务的建设目的: - **AI agents 和助手**读取页面以回答用户的问题。 - **对公开内容的检索和搜索**,例如文档、帮助中心、博客和公开报告。 - **研究**公开文章、政策、价格或公告。 - **监控公开页面**的变化:服务条款、发布说明、产品页面、新闻。 - **无障碍和阅读工具**,将页面呈现为干净的文本。 - **归档和迁移你自己的站点**为另一种格式。 ## 哪些用途是被禁止的? 以下行为在任何账户上都不允许,无论给出何种目的: - 读取页面以收集私人个人数据、读取登录或付费墙后的内容、儿童性虐待材料、垃圾信息、欺诈,以及在你或我们运营地违法的任何用途。 - 从任何网站建立私人个体的画像,或收集联系方式。 - 使用 API、其输出或多个账户来绕过网站的拒绝、rate limit、挑战页面或 robots.txt 规则。 - 读取需要登录、订阅或付费墙的内容,即使使用你拥有的凭据。 - 未经我们的书面同意,将 API 的原始访问权限转售为你自己的阅读服务。 - 将输出用于垃圾邮件、钓鱼、冒充或欺诈。 - 发送旨在使网站过载或受损的请求。 ## robots.txt 和网站所有者的选择如何适用于我? 它们自动适用于每一个请求,你无法关闭。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 如果你需要的网站无法访问,请向其所有者申请访问权限,或使用该网站提供的官方 feed 或 API。[bot 页面](https://webreaderapi.com/zh/bot/)向网站所有者展示了如何允许或拒绝我们的爬虫。 ## 谁对内容的使用方式负责? 是你。你读取的页面保留其所有者的权利:版权、数据库权利以及网站声明的任何许可。WebReaderAPI 交付你请求的文本;它并不授予你重新发布的权利。 在存储、发布或基于其内容进行训练之前,请检查你读取的网站的条款和许可。本政策不构成法律建议;如需建议,请在你运营所在地咨询律师。 ## 如果有人违反本政策会怎样? 我们首先查看事实:在任何行动之前,由人工审核每一份报告。根据案件的严重程度,我们可能会警告该账户、吊销其 API 密钥、暂停或关闭该账户。 因违规而被关闭的账户上的积分将丢失,正如[条款](https://webreaderapi.com/zh/terms/)所述。涉及儿童性虐待的内容会报告给主管当局。 ## 我如何举报滥用行为? 请写信至 abuse@webreaderapi.com,附上相关 URL、日期和时间,以及一行显示我们 user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` 的服务器日志。简短、事实性的报告最便于核查。我们不会向举报者透露是哪个客户发送了请求,但我们会根据调查结果采取行动。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # Firecrawl 替代方案:按页计费的 Markdown 积分,加密货币支付 > 2026 年的 Firecrawl 替代方案:从 US$0.07/千页 将网页转为 Markdown,积分永不过期,遵守 robots.txt,无需 KYC,加密货币支付。 - URL: https://webreaderapi.com/zh/alternatives/firecrawl/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) Firecrawl 是大多数对比文章首先提到的阅读 API。本页面将其公开套餐与 WebReaderAPI 的 packs 并列,列出 Firecrawl 做了而我们没做的事,并将其选项映射到我们的 endpoints 以便迁移。 **快速回答 — 有什么好的 Firecrawl 替代方案可以用加密货币支付?** **WebReaderAPI** 将公开网页、PDF 和整站转为 Markdown,以永不过期的预付积分出售,加密货币支付,无需 KYC。按本页面的价格(设定于 2026-10-22),100,000 个静态页面花费 US$21.75;Firecrawl 的 Standard 套餐每月 $99 获得 100,000 积分。Firecrawl 每页渲染均计一个积分,并提供 JSON 提取、浏览器操作和我们不提供的免费套餐。 ## Firecrawl 和 WebReaderAPI 一览 | | WebReaderAPI(我们的) | Firecrawl | | --- | --- | --- | | 计费 | 预付 packs;积分永不过期 | 月度套餐;套餐积分每月重置;额外购买的积分保留至取消 | | 最小的付费选项 | 10,000 个网页 售价 US$3.75 | Hobby:每月 $19 获得 5,000 积分 | | 每页积分 | 静态页面 1 个积分,需要浏览器时 2 个积分 | 每页 1 个积分,渲染包含在内 | | 免费套餐 | 无 | 每月 1,000 积分,无需信用卡;在每日限额内可免密钥使用 MCP | | 结构化 JSON 提取 | 不提供 | 按 schema 提取 JSON 格式,每页 +4 积分 | | 浏览器操作和截图 | 不提供 | 每个请求最多 50 个操作;截图格式 | | 站点地图 endpoint | 版本 1 中不提供 | 地图:每次调用 1 积分 | | robots.txt | 始终遵守;无法覆盖 | 默认遵守;ignoreRobotsTxt 仅限 Enterprise | | 支付 | BTC, USDT, USDC, ETH, SOL, LTC | 通过 Stripe 支持信用卡、借记卡和 PayPal | | 身份验证 | 无:无需身份证件、无需自拍、无需文件 | 其条款中未说明 | | 自托管 | 否 | 核心以 AGPL-3.0 开源 | *价格核查于 2026年10月22日.* Firecrawl 相关信息来自 firecrawl.dev 和 docs.firecrawl.dev,读取于 2026-10-22。 ## 按每 1,000 页计算,价格如何比较? 这取决于你的页面是否需要浏览器。无论哪种情况,Firecrawl 都按每页 1 积分计费。WebReaderAPI 对 HTML 中直接包含正文的页面收取 1 积分,对必须运行浏览器的页面收取 2 积分;使用 `render=auto` 时,仅在需要时才启动浏览器。 | 每月页数 | Firecrawl(任意页面) | WebReaderAPI,静态页面 | WebReaderAPI,需要浏览器的页面 | |---|---|---|---| | 10,000 | $44(Hobby $19 + 5,000 额外积分,每 1,000 积分 $5) | US$3.75 | 2 × US$3.75 | | 100,000 | $99(Standard) | US$21.75 | 2 × US$21.75 | | 1,000,000 | $749(Scale;按年计费为每月 $599) | US$74.25 | 2 × US$74.25 | 按本页 2026-10-22 设定的价格,在这三个用量下,我们两列的费用都低于 Firecrawl 的月费。有两个差异比总价更重要:Firecrawl 套餐中的积分每月重置,而我们的 pack 会保值;Firecrawl 的 JSON 提取每页总共花费 5 积分,这是我们不提供的功能。 ## 什么时候 Firecrawl 是更好的选择? 当你需要的不仅仅是公共页面的干净 Markdown 时,选择 Firecrawl: - **结构化提取。** 它的 JSON 格式会返回与你发送的 schema 匹配的字段,每页额外 4 积分。我们只返回 Markdown 和 metadata。 - **浏览器操作。** 读取前可点击、等待、滚动和输入,每个请求最多 50 个操作。我们按页面加载时的状态读取。 - **截图、站点地图和变更跟踪。** 这些都是 Firecrawl 侧的格式或 endpoint。 - **免费起步。** 每月 1,000 积分,无需信用卡,并且可通过其 MCP server 免密钥访问,每个 IP 地址每天有上限。 - **生态。** 其集成页面列出了 LangChain、LlamaIndex、CrewAI、n8n、Zapier 和编码代理;OpenClaw 将 Firecrawl 作为其内置的 web_fetch provider。 - **自托管。** 核心以 AGPL-3.0 开源。 Firecrawl 还于 2026 年 9 月 22 日宣布了 $75M B 轮融资,为其快速的产品路线图提供资金。 ## 什么时候 WebReaderAPI 是更好的选择? 如果你想要一个价格可预测、无需信用卡或身份验证的简洁读取器,选择 WebReaderAPI。 - **加密货币,无需 KYC。** 从 US$25 起用 BTC, USDT, USDC, ETH, SOL, LTC 充值。使用账号登录;邮箱为可选。 - **积分保值。** 预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。一年跑两次的整站抓取 (crawl) 不必为十一个闲置月份付费。 - **错误不产生费用。** 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。Firecrawl 在未返回文档时不收费,但返回 403 或 404 的页面仍会花费 1 积分。 - **对站点所有者只有一条规则。** 我们的 crawler 在每次读取时检查 robots.txt 并遵守 `Content-Signal: ai-input=no`,没有可关闭该行为的设置。其 User-Agent 发布在[我们的 crawler 页面](https://webreaderapi.com/zh/bot/)。 - **每页价格**按上述用量,截至 2026-10-22。 ## Firecrawl 的选项如何对应到 WebReaderAPI 的 endpoint? 单页读取和整站抓取 (crawl) 可直接替换;提取、操作和地图没有对应项。 | Firecrawl | WebReaderAPI | 说明 | |---|---|---| | 抓取单页 | `GET` 或 `POST /read` | 思路相同:一个 URL 进,一个文档出 | | `formats: ["markdown"]`(默认) | `format=markdown`(默认) | 默认仅正文;`main_content=false` 获取整页 | | `formats: ["html"]` | `format=html` | 内容的清洗后 HTML;版本 1 中没有原始 HTML | | `formats: ["links"]` | `include_links=true` | 链接以列表返回 | | 带 schema 的 `formats: ["json"]` | — | 在我们的 Markdown 上运行你自己的模型 | | 操作、截图 | — | 不提供 | | `timeout`,单位 ms(默认 60,000) | `timeout`,单位秒(5 至 60,默认 30) | | | `maxAge` 缓存(默认 2 天) | — | 我们不保留副本;每次读取都会获取页面 | | 使用 `limit` 和 `maxDiscoveryDepth` 的整站抓取 (crawl) | 使用 `POST /crawl`,带 `limit`(最多 10,000)和 `max_depth` | 结果使用 cursor 分页 | | 地图 | — | 版本 1 中不提供 | | `ignoreRobotsTxt`(Enterprise) | — | robots.txt 始终应用 | *Python:你过去以 scrape 方式发送的读取* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/changelog", "format": "markdown", "include_links": "true"}, timeout=90, ) if resp.status_code == 403: print("refused by robots.txt or by the site:", resp.json()["error"]["code"]) else: resp.raise_for_status() page = resp.json() print(page["title"], "-", page["credits_used"], "credit(s)") print(len(page.get("links", [])), "links") print(page["markdown"][:400]) ``` ## Firecrawl 能读取的页面在这里也能用吗? 大多数公共页面可以,但策略上有一个差异。Firecrawl 的增强模式在收到 401、403 或 429 响应后,会通过它所谓的增强代理重试请求。WebReaderAPI 不会在拒绝后重试:当站点说 no 时,你会得到带有站点自身状态的 `502 target_refused`,且不消耗积分。 在迁移生产流量之前,先用一天时间用两个服务分别跑你最重要的 50 个 URL。比较 Markdown、`rendered` 标志和消耗的积分;这能同时告诉你质量和你的页面的真实价格。 ## 哪个 pack 替代我的 Firecrawl 套餐? 统计你每月的页数以及其中多少需要浏览器。与 Standard 规模相当、100,000 页的工作负载,如果页面是静态的,用一个 100,000 个网页 即可;如果每个页面都需要浏览器,则用两个这样的 pack。积分永不过期。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | 批量 | 5,000,000 个网页 | US$350 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 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 分钟 ## Firecrawl 替代方案:常见问题 ### 有免费的 Firecrawl 替代方案吗? Firecrawl 自身有每月 1,000 积分的免费额度。Crawl4AI、MarkItDown 和 Trafilatura 等开源工具可免费在你自己的服务器上运行;参见 [Crawl4AI 还是托管 API](https://webreaderapi.com/zh/compare/crawl4ai-vs-api/)。WebReaderAPI 没有免费额度:其最小的 pack 是 10,000 个网页 购买 US$3.75。 ### 可以用加密货币支付 Firecrawl 吗? 其定价页面列出的支付方式是 Stripe,支持信用卡、借记卡和 PayPal,没有加密货币选项。WebReaderAPI 仅接受 BTC, USDT, USDC, ETH, SOL, LTC,无需 KYC。 ### WebReaderAPI 能像 Firecrawl 一样按 schema 提取 JSON 吗? 不能。WebReaderAPI 返回 Markdown、文本或清洗后的 HTML 以及 metadata。如果你需要字段,请将我们的 Markdown 连同你的 schema 一起传给你选择的模型;Firecrawl 的 JSON 格式每页额外 4 积分即可实现。 ### Firecrawl 积分会过期吗? 根据 Firecrawl 的计费文档,套餐积分每月重置,默认不结转;额外购买的积分在使用前一直保留,但取消订阅后会过期。WebReaderAPI 积分永不过期。 ### 我可以改为自托管 Firecrawl 吗? 可以。其核心以 AGPL-3.0 开源,README 说明默认遵守 robots.txt。托管服务还提供开源版本不具备的功能。 ## 来源 1. [Firecrawl 定价](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [计费](https://docs.firecrawl.dev/billing.md) — Firecrawl docs (read 2026-10-22) 3. [高级网页抓取指南](https://docs.firecrawl.dev/advanced-scraping-guide.md) — Firecrawl docs (read 2026-10-22) 4. [整站抓取 (crawl)](https://docs.firecrawl.dev/features/crawl.md) — Firecrawl docs (read 2026-10-22) 5. [增强模式](https://docs.firecrawl.dev/features/enhanced-mode.md) — Firecrawl docs (read 2026-10-22) 6. [集成](https://docs.firecrawl.dev/integrations.md) — Firecrawl docs (read 2026-10-22) 7. [Firecrawl 无密钥发布](https://www.firecrawl.dev/blog/firecrawl-keyless-launch) — Firecrawl (read 2026-10-22) 8. [推出 Alexandria 及我们的 B 轮融资](https://www.firecrawl.dev/blog/introducing-alexandria-series-b) — Firecrawl (read 2026-10-22) 9. [firecrawl/firecrawl 仓库](https://github.com/firecrawl/firecrawl) — GitHub (read 2026-10-22) 10. [网页工具](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # Jina Reader 替代方案:按页计积分而非按 token > Jina Reader 替代方案:按页计积分而非按 token,US$0.07/千页 起,始终检查 robots.txt,无需 KYC,加密货币支付。价格日期 2026-10-22。 - URL: https://webreaderapi.com/zh/alternatives/jina-reader/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) Jina Reader 让 URL 前缀技巧广为人知:在链接前加上 r.jina.ai/ 即可得到 Markdown。本页说明 Jina 如何计费、何时它才是合适的工具,以及何时按页定价更便于规划。 **快速回答 — 什么是好的 Jina Reader 替代方案?** Jina Reader 按输出 token 收费:10 亿 token 收费 $50,110 亿 token 收费 $500,每个新密钥可获 1,000 万免费 token,仅限非商业用途(读取于 2026 年 10 月 22 日)。**WebReaderAPI** 则按页收费,US$0.07/千页 起,因此长页面与短页面费用相同。它在每次读取时检查 robots.txt,出售永不过期的积分,并接受加密货币支付,无需 KYC。 ## Jina Reader 与 WebReaderAPI 一览 | | WebReaderAPI(我们的) | Jina Reader | | --- | --- | --- | | 如何调用 | 使用 API 密钥的 `GET https://webreaderapi.com/api/v1/read?url=…` | 在链接前加前缀:`https://r.jina.ai/` + URL;密钥可选 | | 计费单位 | 按页:1 积分,使用浏览器则 2 积分 | 输出 token | | 价格 | 10,000 个网页 为 US$3.75;US$0.07/千页 起 | 每 10 亿 token 收费 $50;每 110 亿 token 收费 $500 | | 免费使用 | 无 | 无密钥每分钟 20 次请求;每个新密钥 1,000 万 token,仅限非商业用途 | | 速率限制 | 控制面板中显示的并发限制 | 使用密钥每分钟 500 次请求;高级版每分钟 5,000 次 | | robots.txt | 每次读取均检查 | 可选 `X-Robots-Txt` 请求头;默认情况未说明 | | 整站抓取 (crawl) | `POST /crawl`,最多 10,000 页 | 未说明整站抓取 (crawl) endpoint | | PDF | 支持,最多 100 页 | 是 | | 支付 | BTC, USDT, USDC, ETH, SOL, LTC | 通过 Stripe 支持银行卡、Google Pay 和 PayPal | | 所有者 | SerpGoat LLC | Jina AI,自 2025 年 10 月起归入 Elastic 旗下 | *价格核查于 2026年10月22日.* Jina 相关信息来自 jina.ai/reader 及其定价面板,读取于 2026-10-22。 ## Jina Reader 如何收费,一页要花多少钱? Jina 按响应中的 token 计费。其套餐为 10 亿 token 售价 $50,约每百万 $0.05;110 亿 token 售价 $500,约每百万 $0.045。失败的请求不扣费,同一页面在 5 分钟内重复请求会走缓存。 因此,一页的成本取决于该页的长度,而 Jina 并未公布平均值。作为**估算,假设每页 5,000 token**,则 1,000 页在第一个套餐下约花 $0.25,在第二个套餐下约花 $0.225。一篇 2,000 token 的新闻简讯花费更少;一个 20,000 token 的文档页面则要贵四倍。通过 jina-ocr-v1 进行的 OCR 会消耗多 40 倍的 token。 ## 什么时候按页计费积分更容易规划? 当你清楚要读取多少页、但不知道每页有多长时。抓取一个文档站、列出一批要监控的竞品页面,或让 agent 每个任务读取五个链接,这些都有页数,而没有 token 数。 使用 WebReaderAPI 时,100,000 个网页 花费 US$21.75,无论每页长度如何,截至 2026 年 10 月 22 日。需要浏览器的页面消耗两个积分,`rendered` 字段会说明何时发生了这种情况。使用 `max_chars` 来限制返回内容的大小;它保护你模型的上下文窗口,但不改变价格。 ## 什么时候 Jina Reader 是更好的选择? 当搭建时间比什么都重要,或者你的页面较短时,选择 Jina Reader: - **无需设置。** 一个 URL 前缀无需密钥即可在每分钟 20 次请求下使用,足以满足测试和小型脚本。 - **短页面。** 按 token 计费时,短页面的成本低于按页定价;按上面 5,000 token 的估算,Jina 每页成本低于我们的 10,000 个网页 套餐。 - **通过 header 精细控制。** `X-Target-Selector`、`X-Remove-Selector`、`X-Token-Budget`、`X-Engine` 等塑造每次读取。 - **模型与搜索。** ReaderLM-v2 输出和 `s.jina.ai` 搜索来自同一账户。 - **官方 MCP server**,其 `read_url` 工具每次调用可读取最多五个 URL。 - **开源。** GitHub 上的 Reader 分支为 Apache-2.0,不含托管存储层。 Jina AI 现归入 Elastic 旗下,后者于 2025 年 10 月 9 日完成收购。 ## Jina Reader 的 header 如何映射到 WebReaderAPI 参数? 大多数读取只需更改 URL 并添加密钥即可迁移。 | Jina Reader | WebReaderAPI | 说明 | |---|---|---| | `https://r.jina.ai/https://example.com` | `GET https://webreaderapi.com/api/v1/read?url=https://example.com` | 密钥放在 `Authorization` header 中 | | 默认 Markdown 输出 | `format=markdown`(默认) | 默认提取正文 | | `X-Engine: direct` | `render=false` | 普通 HTTP 读取 | | 默认无头浏览器 | `render=auto` 或 `render=true` | 浏览器运行时消耗 2 积分 | | `X-Token-Budget` | `max_chars` | 按字符,不按 token | | `X-Target-Selector`、`X-Remove-Selector` | — | 改用正文检测 | | `X-Proxy`(国家) | `country` | +10 积分,住宅连接 | | `X-No-Cache` | — | 我们不保留缓存 | | `X-Robots-Txt`(opt-in) | — | robots.txt 始终会检查 | | `X-User-Agent` 覆盖 | — | 我们的 User-Agent 固定且公开 | *Python:从 r.jina.ai 前缀到 read endpoint* ```python import os import requests # Before: requests.get("https://r.jina.ai/" + url) url = "https://example.com/guide/install" resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": url, "render": "auto", "max_chars": 30000}, timeout=90, ) resp.raise_for_status() page = resp.json() print(page["word_count"], "words, rendered:", page["rendered"], "credits:", page["credits_used"]) print(page["markdown"][:400]) ``` ## 你读取的网站会有什么变化? 使用 Jina 时,只有当你发送 `X-Robots-Txt` header 时才会检查 robots.txt,并且你可以覆盖浏览器 User-Agent;其页面并未说明两者的默认值。使用 WebReaderAPI 时,两者都是固定的:每次读取都会为 `WebReaderAPI` 以及所有 robots 检查 robots.txt,且每个请求都携带 `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`。 这意味着 Jina 能读取的一些页面在这里会被拒绝,且不向你收费。作为交换,网站所有者可以看清谁在读取他们的页面,并用一行代码屏蔽或允许我们,正如我们的 [crawler 页面](https://webreaderapi.com/zh/bot/) 所说明的那样。 ## WebReaderAPI 用什么代替按 token 计费? 按页固定价格:10,000 个网页 对应 US$3.75,最高 5,000,000 个网页 对应 US$350,截至 2026 年 10 月 22 日。积分永不过期。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | 批量 | 5,000,000 个网页 | US$350 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 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 分钟 ## Jina Reader 替代方案:常见问题 ### Jina Reader 免费吗? 部分免费。无需密钥时,r.jina.ai 对基础使用免费,每分钟 20 次请求。每个新密钥还会获得 1,000 万免费 token,Jina 的定价页将此限制为非商业用途。付费套餐起价 $50 对应 10 亿 token。 ### 为什么 Jina Reader 的页面越长越贵? 因为 Jina 按其响应中的 token 计费。长文章返回的 token 比短文章多。WebReaderAPI 每页计一个积分,使用浏览器计两个,无论长度如何。 ### 我可以用加密货币支付 Jina Reader 吗? Jina 的页面列明通过 Stripe 支持银行卡、Google Pay 和 PayPal,没有加密货币选项。WebReaderAPI 接受 BTC, USDT, USDC, ETH, SOL, LTC,无需 KYC。 ### WebReaderAPI 是否像 r.jina.ai 一样有无需密钥的免费模式? 没有。每次读取都需要密钥,密钥随付费套餐提供。最小的套餐为 10,000 个网页 对应 US$3.75。 ### 现在谁拥有 Jina Reader? Elastic。它于 2025 年 10 月 9 日完成对 Jina AI 的收购,Jina 的法律页面称 Elastic 的数据处理条款现已适用。 ## 来源 1. [Reader](https://jina.ai/reader/) — Jina AI (read 2026-10-22) 2. [API 面板:定价](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 3. [法律](https://jina.ai/legal/) — Jina AI (read 2026-10-22) 4. [jina-ai/reader 仓库](https://github.com/jina-ai/reader) — GitHub (read 2026-10-22) 5. [jina-ai/MCP 仓库](https://github.com/jina-ai/MCP) — GitHub (read 2026-10-22) 6. [Elastic 完成对 Jina AI 的收购](https://ir.elastic.co/News--Events/news/news-details/2025/Elastic-Completes-Acquisition-of-Jina-AI-a-Leader-in-Frontier-Models-for-Multimodal-and-Multilingual-Search/default.aspx) — Elastic (2025-10-09, read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 2026 年最佳网页读取器 API:把 URL 转成 Markdown 的 10 种方法 > 2026 年最佳网页读取器和 URL 转 Markdown API:10 个选项在每 1,000 页价格、JavaScript、robots.txt、加密货币和 KYC 方面进行对比。核查于 2026-10-22。 - URL: https://webreaderapi.com/zh/best/web-reader-apis/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 十个托管 API 和开源工具,把网页转为供模型使用的 Markdown,依据它们自己的页面按相同标准对比。我们发布 WebReaderAPI,它在本列表排第一;每个条目都说明该选项在哪些方面做得更好。 **快速回答 — 2026 年最佳网页读取器或 URL 转 Markdown API 是什么?** 这取决于具体任务。截至 2026 年 10 月 22 日:**WebReaderAPI** 支持加密货币支付、无需 KYC、遵循 robots.txt,并且积分永不过期,起价为 US$0.07/千页;Firecrawl 功能最完整,其 $99 套餐每 1,000 页收费 $0.99;Jina Reader 无需配置即可读取,按 token 计费;如果你倾向于以 Apache-2.0 许可证自行托管,可以选择 Crawl4AI。 ## 2026 年 10 个最佳网页读取 API **方法说明.** 由 WebReaderAPI (SerpGoat LLC) 发布。所有服务商均按相同标准比较,标准取自其各自的公开网站:纯文本页面和浏览器渲染页面的每 1,000 页标价, 免费额度和积分有效期, Markdown 质量特性(正文提取、PDF、整站抓取 (crawl)), robots.txt 政策, 支持的支付方式,包括加密货币, 身份或银行卡要求, 价格核对日期。 *价格核查于 2026年10月22日.* ### 1. WebReaderAPI — 我们的产品 面向 AI agents 的网页读取 API,预付费积分永不过期,以加密货币支付,无需 KYC;其爬虫遵循 robots.txt,绝不会尝试绕过拒绝。 - 最适合: 无需证件即可用加密货币支付;需要礼貌抓取的 agents 和 RAG 流水线 - 价格: US$0.38/千页 每 10,000 个网页,US$0.07/千页 每 1,000,000 个网页;浏览器页面使用 2 积分 - KYC: 无 - 加密货币支付: BTC, USDT, USDC, ETH, SOL, LTC - 优点: 积分永不过期 - 优点: 失败页面和被 robots.txt 拒绝的页面免费 - 优点: 面向 MCP、LangChain、LlamaIndex、OpenAI、n8n、OpenClaw 的工具代码 - 缺点: 无免费额度 - 缺点: 不提供结构化 JSON 提取或页面操作 - 缺点: 网站拒绝的页面仍保持拒绝 ### 2. Firecrawl 最知名的 API,可将网站转为 LLM 就绪的数据:抓取、整站抓取 (crawl)、映射和提取,拥有庞大的开源和 MCP 生态。 - 最适合: 需要结构化提取、页面操作和成熟生态的团队 - 价格: Hobby 套餐每 1,000 页 $3.80($19 购买 5,000 页);Standard 套餐每 1,000 页 $0.99($99 购买 100,000 页);Scale 套餐每 1,000 页 $0.749($749 购买 1 百万页);包含 JavaScript - KYC: 未说明 - 加密货币支付: 不支持(银行卡、PayPal) - 优点: 每月 1,000 免费积分,无需银行卡 - 优点: 默认遵循 robots.txt - 优点: 核心可自行托管(AGPL-3.0) - 缺点: 套餐积分每月重置 - 缺点: JSON 提取每页额外增加 4 积分 ### 3. Jina Reader 在 URL 前加上 r.jina.ai 即可获取 Markdown;按输出 token 计费,现已归入 Elastic。 - 最适合: 无需配置的快速读取;短页面 - 价格: 每 10 亿输出 token $50;每 110 亿 token $500(每页成本取决于页面长度) - KYC: 未说明 - 加密货币支付: 未说明 - 优点: 无密钥使用限每分钟 20 次请求 - 优点: 每个新密钥 1,000 万免费 token(非商业用途) - 缺点: 按 token 计费使长页面成本难以预估 - 缺点: robots.txt 仅通过选择性加入的请求头遵循 ### 4. Crawl4AI 最受欢迎的开源 LLM 爬虫,带有软发布中的托管云。 - 最适合: 希望自行托管并完全掌控的团队 - 价格: 自托管免费;Cloud 版 $10 起(Starter),普通页面 0.5 积分,浏览器页面 1 积分 - KYC: 无需银行卡(Cloud) - 加密货币支付: 未说明 - 优点: Apache-2.0 许可证 - 优点: 自托管 MCP server - 缺点: 自托管意味着要自己维护服务器 - 缺点: check_robots_txt 默认关闭 ### 5. Olostep 一个在浏览器中渲染每个页面的 API,支持批量、整站抓取 (crawl) 和地图,并为 agent 提供按请求的加密货币支付。 - 最适合: 大批量 JavaScript 密集型网站 - 价格: Starter 每 1,000 次 $1.80(5,000 次 $9);Scale 每 1,000 次 $0.399(100 万次 $399),每个页面均渲染 - KYC: 充值支持银行卡 - 加密货币支付: 按请求,USDC (x402) - 优点: 每月 100 万次时经核实最低的浏览器页面价格 - 优点: 批量、整站抓取 (crawl) 和地图 - 缺点: 套餐积分每月重置 ### 6. Exa contents 以固定价格从 Exa 搜索索引获取页面内容,并为 agent 提供按请求的加密货币支付。 - 最适合: 已经使用 Exa 搜索的 agent - 价格: 每 1,000 页 $1.00,固定价格 - KYC: 按量付费支持银行卡 - 加密货币支付: 按请求,USDC (x402) - 优点: 每月 $10 免费额度 - 优点: x402,每页 $0.001 - 缺点: 缓存优先;无文档记载的浏览器选项 ### 7. Tavily Extract 从 Tavily 搜索栈提取内容,按 URL 批次计价,并提供 advanced 模式。 - 最适合: 围绕 Tavily 搜索构建的 agent - 价格: Project 每 1,000 个基础 URL $1.50($30);Growth 每 1,000 个 $1.00($500);advanced 模式价格翻倍 - KYC: 未说明 - 加密货币支付: 仅由其自行决定(条款) - 优点: 每月免费 1,000 积分(5,000 个基础 URL) - 缺点: 积分每月重置 - 缺点: 未说明 robots.txt 政策 ### 8. ScrapingBee 一个通用网页抓取 API,支持 Markdown 输出,大批量时普通页面价格低。 - 最适合: 大批量普通页面 - 价格: 每月 100 万次时每 1,000 个普通页面 $0.099(Startup $99);浏览器页面消耗 5 积分 - KYC: 付费计划支持银行卡 - 加密货币支付: 否 - 优点: 大批量时普通页面价格低 - 优点: Markdown 和文本输出 - 缺点: 积分不结转 - 缺点: 未说明 robots.txt 政策 ### 9. ZenRows 一个包含 Markdown 输出的网页抓取 API,并有一个接受 USDC 的 agent 商店。 - 最适合: 小型 agent 工作负载按次付费 - 价格: 通过其 agent 商店每 1,000 个纯网页 $0.50;套餐价 100 万页时 $0.199;浏览器网页每次消耗 5 积分 - KYC: 邮箱验证 - 加密货币支付: 仅限 agent,USDC (x402) - 优点: Markdown 不额外收费 - 优点: 每月 5,000 免费积分 - 缺点: 账户无法使用加密货币支付 - 缺点: 套餐积分在续费时过期 ### 10. Cloudflare Browser Run Cloudflare 的浏览器服务,提供 /markdown 和 /crawl endpoint,按浏览器时长计费。 - 最适合: 已在使用 Cloudflare Workers 的团队 - 价格: 包含 10 小时之后每浏览器小时 $0.09,每月最低 $5 - KYC: Cloudflare 账户 - 加密货币支付: Cloudflare 账单可通过 Stripe 用 USDC 支付(有一个账单页面未提及) - 优点: /crawl respects robots.txt and always identifies itself as a bot - 优点: 按浏览器时长付费,而非按页付费 - 缺点: 每页成本取决于每个页面的耗时 *披露:本页面由 WebReaderAPI 发布。竞品信息来自其公开网站,采集日期见上方所示,此后可能已发生变化。* ## 如何选择网页 reader API? 先从你的网页入手,再考虑数量。 1. **你的网页需要浏览器吗?** 新闻、博客和文档通常不需要;web 应用和部分商店需要。按积分计费的 scraping API 对浏览器网页的收费高 5 到 10 倍,而 Firecrawl 和 Olostep 对每个网页定价相同。 2. **每月多少页,负载是否稳定?** 含大额配额的月度套餐适合稳定的量;不会过期的预付积分适合 agent 和一次性 crawl。 3. **你需要 Markdown 之外的提取吗?** 结构化 JSON、页面操作和截图是 Firecrawl 和大型 scraping API 领先的地方。 4. **你想如何对待网站所有者?** Firecrawl、Cloudflare 的 /crawl 和 WebReaderAPI 默认遵守 robots.txt;有若干 API 交由你决定或未作说明。 5. **你打算怎么付款?** 多数只收银行卡。Scrape.do、Decodo 和 Scrapeless 表示账户可用加密货币;Exa、Olostep 等按请求收取 USDC;WebReaderAPI 无需 KYC 即可使用 BTC, USDT, USDC, ETH, SOL, LTC。 ## 自托管是否比付费使用 API 更划算? 自托管在许可条款上免费,但耗时间。Crawl4AI (Apache-2.0)、Microsoft MarkItDown (MIT)、Trafilatura (Apache-2.0) 和 Mozilla Readability (Apache-2.0) 可完成转换;你仍需自行运行服务器、无头浏览器、重试和 robots.txt 处理。Firecrawl 的核心也可在 AGPL-3.0 许可下自托管。 对于每月几千页,托管 API 的成本通常低于维护一个爬虫所花的时间。我们的 [Crawl4AI 还是托管 API](https://webreaderapi.com/zh/compare/crawl4ai-vs-api/) 页面说明了这一取舍。 ## WebReaderAPI 收费多少? 预付积分,每个纯网页 1 积分,每个浏览器网页 2 积分;积分永不过期。价格设定于 2026 年 10 月 22 日。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | 批量 | 5,000,000 个网页 | US$350 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 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 分钟 ## 最佳网页 reader API:常见问题 ### Firecrawl 和 Jina Reader 哪个更好? Firecrawl 适合需要抓取、结构化提取和可预测的每页价格的团队;Jina Reader 适合无需配置的快速读取,按 token 计费。我们的 [Firecrawl 与 Jina Reader](https://webreaderapi.com/zh/compare/firecrawl-vs-jina-reader/) 页面逐项对比了两者。 ### 哪个网页 reader API 遵守 robots.txt? Firecrawl 默认遵守,仅 Enterprise 可覆盖;Cloudflare 的 /crawl 遵守,且未记录退出选项;WebReaderAPI 在每个请求上都遵守。Jina 将其设为可选启用的 header,而许多 scraping API 未说明政策。 ### 有没有免费的 URL 转 Markdown API? 有几个提供免费额度:Firecrawl 每月 1,000 积分,Tavily 每月 1,000 积分,Exa 每月 $10,ZenRows 每月 5,000 积分,Jina 非商业用途 1,000 万 token。WebReaderAPI 没有免费套餐。 ### 这个排名独立吗? 不独立。它由排名第一的 WebReaderAPI 发布。每个选项都依据其自身公开页面(于 2026 年 10 月 22 日读取)按相同标准描述,且每条都列出了它更擅长的地方。 ## 来源 1. [Firecrawl 定价](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Jina API 定价](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 3. [Crawl4AI](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 4. [Crawl4AI 代码库](https://github.com/unclecode/crawl4ai) — GitHub (read 2026-10-22) 5. [Olostep 定价](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 6. [Exa 定价](https://exa.ai/pricing) — Exa (read 2026-10-22) 7. [Tavily API 积分](https://docs.tavily.com/documentation/api-credits) — Tavily (read 2026-10-22) 8. [ScrapingBee 定价](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 9. [ZenRows 定价](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 10. [Browser Run 定价](https://developers.cloudflare.com/browser-run/pricing/) — Cloudflare (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # WebReaderAPI 机器人:user agent、robots.txt 以及如何屏蔽它 > WebReaderAPI 机器人:确切的 user agent、它的 robots.txt token、如何屏蔽或限速它,以及它永远不会做的事。写给网站所有者和 AI 工具。 - URL: https://webreaderapi.com/zh/bot/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 如果你在服务器日志中看到了我们的名字,本页说明我们是谁、为什么抓取了你的页面,以及如何告诉我们不要抓取。这里的每条规则都是本服务构建时遵循的承诺。 **快速回答 — WebReaderAPI 机器人是什么,我该如何屏蔽它?** 当我们的客户请求 API 读取公开页面时,**WebReaderAPI** 机器人会抓取这些页面。它发送的 user agent 是 `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`,并遵守针对 token `WebReaderAPI` 或针对所有机器人的 robots.txt 规则。要在全站屏蔽它,请在 robots.txt 中添加 `User-agent: WebReaderAPI`,后跟 `Disallow: /`。 ## 机器人概览 | 属性 | 值 | | --- | --- | | User-Agent 请求头 | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | robots.txt token | `WebReaderAPI` | | robots.txt | 我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费 | | AI 偏好信号 | 如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面 | | 当网站拒绝时 | 如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙 | | 你页面的副本 | 在答案发送给客户后不保留任何副本 | | 整站抓取任务 | 每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay | | 联系方式 | abuse@webreaderapi.com | ## WebReaderAPI 为什么抓取了我的页面? 因为 API 的某位客户请求了它。WebReaderAPI 不建立自己的网络索引,也不会主动浏览。每次抓取都属于以下三种请求类型之一: - **单次读取:** 某个应用或 AI agent 把你的 URL 发给了 `/read`,通常是因为有人提出了一个你的页面能够回答的问题。 - **批量任务:** 客户提交了一份最多 100 个 URL 的列表,你的 URL 就在其中。 - **整站抓取任务:** 客户要求我们读取整个站点,从一个地址开始并停留在该域名内。整站抓取会遵循你的 sitemap 和 robots.txt。 客户以 Markdown 形式收到页面的正文。之后我们不保留任何副本。 ## 如何在全站屏蔽该机器人? 在 robots.txt 文件中为我们的 token 添加一个分组。机器人在抓取页面前会读取 `/robots.txt`,并最多缓存 24 小时,因此更改最迟在一天内生效。 *robots.txt:拒绝 WebReaderAPI 访问所有页面* ```text User-agent: WebReaderAPI Disallow: / ``` ## 我可以只屏蔽部分站点,或者让机器人放慢速度吗? 可以。在 `Disallow` 下列出你想排除的文件夹,并为整站抓取任务设置以秒为单位的 `Crawl-delay`。针对所有机器人的规则(`User-agent: *`)在你没有为我们的 token 设置分组时同样适用于我们。如果你设置了分组,则以该分组为准,正如 RFC 9309 所述。 *robots.txt:排除两个文件夹并拉长整站抓取请求的间隔* ```text User-agent: WebReaderAPI Disallow: /account/ Disallow: /drafts/ Crawl-delay: 5 ``` ## 机器人会遵守 AI 偏好信号吗? 会,遵守网站在 robots.txt 中声明的那些信号。如果你的文件声明了 `Content-Signal: ai-input=no`,我们会将其视为拒绝让你的页面被用作 AI 回答的输入,因此不会为我们的客户读取这些页面。此时 API 会向客户返回错误 `blocked_by_site_policy`,且不向客户收费。 *robots.txt:允许搜索引擎,拒绝 AI 输入* ```text User-agent: * Content-Signal: search=yes, ai-input=no Allow: / ``` ## 当我的站点拒绝它时,机器人会怎么做? 它会停止并上报你的响应。403 或 429 状态码、验证页面、登录表单或付费墙都会终止该请求。客户会收到错误 `target_refused` 及你的状态码,且不会被收费。 机器人从不破解验证、从不登录、从不伪装成浏览器更改 user agent,也从不换装重试。如果你希望我们读取你的页面,请在 robots.txt 中允许该 token 并放行请求;如果不希望,你这边无需再做任何事。 ## WebReaderAPI 目前还不承诺什么? 我们目前不公布 IP 地址列表,因此请通过 user agent 和其 robots.txt 行为来识别机器人,而不是通过 IP。使用 `country` 选项读取页面时,请求会从所选国家的地址发出,user agent 仍然相同。一旦我们的地址段确定,我们会将其连同变更日期补充到本页。 ## 如何举报与机器人相关的问题? 请写信至 abuse@webreaderapi.com,附上日期和时间、你的域名、被抓取的 URL,以及一行显示我们 user agent 的访问日志。会有人阅读每份报告,并与我们的日志核对。如果客户违反我们的[可接受使用政策](https://webreaderapi.com/zh/acceptable-use/)使用 API,其账户将被暂停。 要确认某个请求是否真的来自我们,请将 user agent 和 robots.txt 行为与本页对照。使用我们名字却无视你 robots.txt 规则的客户端不是我们的机器人。 ## 网站所有者的问题 ### WebReaderAPI 机器人是搜索引擎爬虫吗? 不是。它不索引网络,也不对页面排名。只有当 API 的客户请求某个页面时,它才会读取该页面,无论是单次请求、批量任务还是对单个站点的整站抓取。 ### 屏蔽该机器人会影响我在 Google 或 Bing 的排名吗? 不会。针对 `WebReaderAPI` 编写的规则只涉及我们的机器人。搜索引擎爬虫会遵循你 robots.txt 中各自的分组。 ### robots.txt 的更改多久生效? 最迟 24 小时内。机器人会最多缓存 robots.txt 一天,然后再次读取。 ### 这个机器人会遵守 Crawl-delay 吗? 会,针对整站抓取 (crawl) 任务,这类任务会读取同一个网站的多个页面。单次读取就是一个请求,不会拉开间隔。 ### 你们会存储或出售我页面的内容吗? 不会。页面文本只会发送给请求它的客户,我们不会保留。我们的日志会保留主机名、时间、状态码和所用积分,保留 30 天。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 更新日志 > WebReaderAPI 更新日志:网页阅读器 API、其价格、其爬虫规则及其政策的带日期变更记录。首条记录:网站和文档已发布。 - URL: https://webreaderapi.com/zh/changelog/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) API、价格、爬虫行为和政策方面的变更都列在这里,最新的在前。网站上其他位置做出的承诺如有变更,也会在这里出现。 **快速回答 — WebReaderAPI 有哪些变化?** 2026 年 10 月 22 日,**WebReaderAPI** 发布了其网站、文档、价格和政策。API 本身尚未开放;它的上线将是本页面的下一条记录。价格从 US$3.75 起,对应 10,000 个网页,在最大套餐上最低可降至 US$0.07/千页。 ## 2026 年 10 月 22 日:网站和文档已发布 - **网站、价格和政策**已上线:[定价](https://webreaderapi.com/zh/pricing/)、[条款](https://webreaderapi.com/zh/terms/)、[隐私](https://webreaderapi.com/zh/privacy/)、[可接受使用](https://webreaderapi.com/zh/acceptable-use/) 和 [退款](https://webreaderapi.com/zh/refunds/)。 - **文档**涵盖 `/read`、`/batch`、`/crawl` 和 `/credits` 这几个 endpoint,附带 Python、Node.js 和 curl 代码。 - **爬虫规则**已在[机器人页面](https://webreaderapi.com/zh/bot/)发布:User-Agent 为 `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`,robots.txt token 为 `WebReaderAPI`,遵守 `ai-input=no`。 - **API 状态:** 待上线。在本文出现上线记录之前,无法购买 API 密钥。 ## 什么样的变更值得记录一条带日期的条目? 任何客户或网站所有者可能依赖的内容: - 新的 endpoint、参数或响应字段; - 字段被重命名或删除(只会在 API 的新版本中发生,例如 `/api/v2/`); - 价格、积分规则或退款规则; - 爬虫标识自身的方式或其对待 robots.txt 的方式发生变化; - 影响请求的事件,附带其时间窗口。 ## 价格变更是如何处理的? 新价格适用于其在此发布之后购买的套餐。你已持有的积分保持其价值:它们按页数计,而不是按美元计,并且 预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。 ## API 第 1 版有多稳定? 在第 1 版内,我们可以增加字段和参数,但绝不会重命名或删除它们。读取[响应格式](https://webreaderapi.com/zh/docs/response/)中所记录字段的代码会继续正常工作。破坏性变更会进入新版本,并在上线前在此公告。 ## 我如何跟进这些变更? 查看本页面,或阅读其 Markdown 版本,[llms.txt](https://webreaderapi.com/llms.txt) 会将其与网站的其他页面一起列出。每条记录都保留其日期,因此你可以看到自上次访问以来发生了什么变化。有问题请发送至 support@webreaderapi.com。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # Crawl4AI 还是托管 API?何时该运行你自己的网页阅读器 > Crawl4AI 还是将网页转为 Markdown 的托管 API?许可证、robots.txt 默认设置、自托管的成本,以及 2026-10-22 核查的托管价格。 - URL: https://webreaderapi.com/zh/compare/crawl4ai-vs-api/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 开源工具可以在你自己的服务器上免费将网页转为 Markdown。托管 API 按页收费,并替你运行服务器。本页面说明每种选择实际要花多少钱,从许可证和 robots.txt 默认设置到浏览器和维护。 **快速回答 — 我该自托管 Crawl4AI 还是使用托管网页阅读器 API?** 当你拥有稳定流量以及运行浏览器和服务器的人员时,自托管 Crawl4AI(Apache-2.0,带有署名要求);注意其 robots.txt 检查默认关闭。当流量不稳定或你不想承担运维工作时,使用托管 API:Crawl4AI Cloud 起价 $10 对应 10,000 积分,而 **WebReaderAPI** 为 US$3.75 对应 10,000 个网页,用加密货币支付,无需 KYC(2026 年 10 月 22 日)。 ## 有哪些开源工具可以将网页转为 Markdown? 2026 年 10 月的主要选项,附有其各自仓库和文档中说明的许可证和默认设置。 | 工具 | 许可证 | 渲染 JavaScript | 默认检查 robots.txt | MCP server | | --- | --- | --- | --- | --- | | Crawl4AI | Apache-2.0,另有 README 署名要求 | 是(Playwright) | 关闭:`check_robots_txt` 默认为 False | 是,在你自己的服务器上 | | Firecrawl(自托管) | AGPL-3.0 核心;SDK 与部分 UI 组件为 MIT | 是(Playwright 服务) | 开 | 是(firecrawl-mcp-server,MIT) | | Microsoft MarkItDown | MIT | 否 | 未记录 | 是(markitdown-mcp) | | Trafilatura | Apache-2.0(v1.8.0 之前为 GPLv3+) | 否 | 其 spider 遵循 Robots Exclusion Standard | 未提及 | | Mozilla Readability | Apache-2.0 | 否;需要 DOM,且不进行抓取 | 不适用 | 未发现 | | Jina Reader(开源分支) | Apache-2.0 | 是(Puppeteer) | 未提及 | 不在该仓库中 | *价格核查于 2026年10月22日.* 依据下方列出的 GitHub 仓库与文档,读取时间为 2026-10-22。 ## 自托管一个网页阅读器,成本究竟是多少? 软件免费;但运行它并不免费。在你把一个托管价格与零相比之前,先算上这些: - **服务器与浏览器。** 静态页面只需很少 CPU,但 JavaScript 页面每个请求都需要一个无头浏览器,内存也要相应跟上。高峰时需要备用容量,而这些容量在其余时间都处于闲置状态。 - **维护。** 浏览器版本、提取规则和依赖都在变。Crawl4AI 于 2026 年 10 月 14 日发布 v0.9.5;MarkItDown 于 2026 年 10 月 21 日发布 0.1.9。每次更新都需要有人测试并部署。 - **网络。** 出站带宽、DNS、超时和重试都要由你调优。网站可能拒绝来自你服务器地址的流量,此时正确的做法是尊重这一拒绝。 - **策略。** 除非你开启,Crawl4AI 默认关闭 `check_robots_txt`,并允许你设置或随机化 user agent。决定并执行你自己的 robots.txt 与身份标识规则,也是这项工作的一部分。 - **安全。** MarkItDown 的 README 警告说,它以当前进程的权限执行 I/O,在不受信任的环境中应对外部输入做净化处理。一个抓取任意 URL 的服务还必须拒绝私有地址和本地地址。 ## 相比之下,托管阅读器收费如何? 托管 API 把这些成本转化为按页计价。2026 年 10 月 22 日的两个例子: | | Crawl4AI Cloud | WebReaderAPI(我们) | |---|---|---| | 入门 | Starter 每月 $10,10,000 积分 | US$3.75 得 10,000 个网页 | | 静态页面 | 0.5 积分 | 1 积分 | | 使用浏览器的页面 | 1 积分("真实浏览器") | 2 积分 | | 更大套餐 | Builder $99 得 125,000 积分;Scale $499 得 750,000 | US$74.25 得 1,000,000 个网页;US$350 得 5,000,000 个网页 | | 未使用积分 | 月度积分不结转;额外积分永不过期 | 永不过期 | | 支付 | 通过 Stripe 刷卡 | BTC, USDT, USDC, ETH, SOL, LTC | | robots.txt | 客户必须遵守网站的 robots 指令(条款) | 每次读取时由服务检查 | Crawl4AI Cloud 由 Crawl4AI 维护者运营,并称其价格处于可能变动的"软启动"阶段。其积分为 $0.001,因此 Starter 上静态页面每 1,000 页花费 $0.50。 ## 什么时候应该自托管? 当三件事同时成立时,自托管才划算:你的量高且稳定,你已经在运行服务器和浏览器,并且你需要 API 无法提供的控制力。 - **自定义提取。** Crawl4AI 的 CSS、XPath 与 LLM schema,或在 Readability 或 Trafilatura 之上叠加你自己的规则。 - **数据驻留。** 页面永不离开你的基础设施。 - **网页之外的输入。** MarkItDown 可转换 Word、Excel、PowerPoint、EPub 等,而网页阅读器 API 做不到。 - **许可证适配。** Apache-2.0 与 MIT 工具允许闭源产品;Firecrawl 的 AGPL-3.0 核心要求你在将其作为网络服务提供时共享修改。 ## 什么时候托管 API 是更好的选择? 当你的工作负载不均衡、团队规模小,或者阅读器只是代理内的一个工具而非独立产品时,买页面比跑服务器更合适。 - **尖峰或季节性负载。** 一年抓取两次并不值得养一套浏览器集群。用 WebReaderAPI,预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。 - **代理。** 托管 endpoint 几分钟内即可接入 MCP、LangChain 或 OpenAI 工具;见[我们的 MCP server](https://webreaderapi.com/zh/docs/mcp/)。 - **无需自建的策略。** 我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。 - **无需银行卡的支付。** WebReaderAPI 接受 BTC, USDT, USDC, ETH, SOL, LTC,无需 KYC。 ## 可以两者兼用吗? 可以,很多团队都这样做。对你已持有的文件(如 PDF 和 Office 文档)用 MarkItDown 跑开源转换器,对实时网页调用托管阅读器,尤其是那些否则需要你自己浏览器的 JavaScript 页面。 让两边的输出格式保持一致,即带源 URL 和标题的 Markdown,这样你的分块与索引代码就不关心文档来自哪里。我们的 [RAG 指南](https://webreaderapi.com/zh/use-cases/rag/) 展示了该格式的实际用法。 ## 用 WebReaderAPI 的托管阅读器成本是多少? 按页计费的积分,用加密货币支付,截至 2026 年 10 月 22 日:静态页面 1 积分,使用浏览器 2 积分,失败或被拒绝的页面不计费。积分永不过期。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | 批量 | 5,000,000 个网页 | US$350 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 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 分钟 ## 自托管网页阅读器:常见问题 ### Crawl4AI 可免费用于商业用途吗? 其 README 称采用 Apache-2.0 许可,允许商业使用,并补充说用户必须包含署名,可以是徽章或一行文字。发布前请自行阅读许可证与 README。 ### Crawl4AI 遵守 robots.txt 吗? 只有你要求时才会。其 `check_robots_txt` 参数默认为 False;将其设为 True 可在抓取前检查并缓存 robots.txt 规则。你也可以设置或随机化 user agent,因此其行为由你自己的策略决定。 ### 我可以用 Firecrawl 代替 Crawl4AI 进行自托管吗? 可以。Firecrawl 的核心以 AGPL-3.0 开源,并默认遵守 robots.txt。AGPL 要求你在将该软件作为网络服务提供时公开修改,这对商业产品很重要。 ### 哪个工具能转换 PDF 和 Office 文件? Microsoft MarkItDown 采用 MIT 许可证,可将 PDF、Word、PowerPoint、Excel、HTML、EPub 等格式转换为 Markdown。它不渲染 JavaScript 页面。WebReaderAPI 可从 URL 读取 PDF,最多 100 页。 ### Crawl4AI Cloud 多少钱? 2026 年 10 月 22 日:Starter 每月 $10 享 10,000 积分,Builder 每月 $99 享 125,000 积分,Scale 每月 $499 享 750,000 积分,静态页面每个 0.5 积分,浏览器页面每个 1 积分。网站将这些价格标记为软启动价,可能会有变动。 ## 来源 1. [unclecode/crawl4ai 仓库](https://github.com/unclecode/crawl4ai) — GitHub (read 2026-10-22) 2. [Crawl4AI 参数](https://docs.crawl4ai.com/api/parameters/) — Crawl4AI docs (read 2026-10-22) 3. [Crawl4AI 自托管](https://docs.crawl4ai.com/core/self-hosting/) — Crawl4AI docs (read 2026-10-22) 4. [PyPI 上的 crawl4ai](https://pypi.org/project/crawl4ai/) — PyPI (read 2026-10-22) 5. [Crawl4AI Cloud](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 6. [microsoft/markitdown 仓库](https://github.com/microsoft/markitdown) — GitHub (read 2026-10-22) 7. [PyPI 上的 markitdown](https://pypi.org/project/markitdown/) — PyPI (read 2026-10-22) 8. [adbar/trafilatura 仓库](https://github.com/adbar/trafilatura) — GitHub (read 2026-10-22) 9. [mozilla/readability 仓库](https://github.com/mozilla/readability) — GitHub (read 2026-10-22) 10. [firecrawl/firecrawl 仓库](https://github.com/firecrawl/firecrawl) — GitHub (read 2026-10-22) 11. [jina-ai/reader 仓库](https://github.com/jina-ai/reader) — GitHub (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # Firecrawl vs Jina Reader(2026):哪个网页阅读器适合你的项目? > 2026 年 Firecrawl vs Jina Reader:按页积分 vs token 计费、免费额度、整站抓取 (crawl)、JSON 提取、robots.txt 和支付方式。核查日期 2026-10-22。 - URL: https://webreaderapi.com/zh/compare/firecrawl-vs-jina-reader/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 当开发者问如何把网页转成 Markdown 喂给模型时,最先出现的两个名字就是 Firecrawl 和 Jina Reader。它们的计费方式、整站抓取 (crawl) 和对 robots.txt 的处理都不同。本页基于相同事实对两者进行对比,并将我们自己的服务放在单独标注的一栏中。 **快速回答 — Firecrawl 还是 Jina Reader:我该用哪个?** 需要完整流水线就用 Firecrawl:每页计费 1 积分且包含渲染,支持整站抓取 (crawl) 和站点映射,并能按 schema 提取 JSON,套餐每月 $19 到 $749(2026 年 10 月 22 日)。快速读取就用 Jina Reader:在 URL 前加 r.jina.ai,每十亿输出 token 付 $50,或每分钟 20 次请求免费。**WebReaderAPI**(本页发布者)用加密货币按页售卖积分,无需 KYC。 ## Firecrawl vs Jina Reader,附 WebReaderAPI 供参考 每一行都来自服务商自己的页面,于 2026 年 10 月 22 日读取。第三栏是我们的服务,由两者的竞争对手发布。 | | Firecrawl | Jina Reader | WebReaderAPI(我们的) | | --- | --- | --- | --- | | 计费单位 | 积分:每页 1 积分,含渲染 | 输出 token | 积分:每页 1 积分,使用浏览器为 2 积分 | | 入门价格 | Hobby:每月 $19 享 5,000 积分 | $50 享 10 亿 token | US$3.75 享 10,000 个网页 | | 更大用量 | Standard 每月 $99 享 100K;Scale 每月 $749 享 1M | $500 享 110 亿 token | US$74.25 享 1,000,000 个网页 | | 免费使用 | 每月 1,000 积分,无需信用卡;无密钥 MCP,每个 IP 每日有上限 | 无需密钥,每分钟 20 次请求;每个新密钥 1000 万 token,仅限非商业用途 | 无 | | 未使用积分 | 套餐积分每月重置 | 在我们能读到的文本中未显示有效期 | 永不过期 | | 整站抓取 (crawl) 和站点映射 | 整站抓取 (crawl)(默认上限 10,000 页)和站点映射 | 未说明整站抓取 (crawl) endpoint | 整站抓取 (crawl) 最多 10,000 页;不支持站点映射 | | 结构化提取 | 带 schema 的 JSON,每页 +4 积分 | JSON schema 或指令 header | 不提供 | | robots.txt | 默认遵守;仅 Enterprise 可关闭 | 可选启用 `X-Robots-Txt` header | 始终遵守 | | 支付 | 银行卡、借记卡、PayPal(Stripe) | 银行卡、Google Pay、PayPal(Stripe) | BTC, USDT, USDC, ETH, SOL, LTC | | 开源 | 核心采用 AGPL-3.0 | Reader 分支采用 Apache-2.0 | 否 | | 公司 | Firecrawl;2026 年 9 月 22 日完成 7500 万美元 B 轮融资 | Jina AI,自 2025 年 10 月起归入 Elastic 旗下 | SerpGoat LLC | *价格核查于 2026年10月22日.* 来源见页面底部。 ## 哪个每页成本更低? 取决于页面长度和用量,因为两者的计费单位不同。Firecrawl 按页计费:Standard 档每 1,000 页 $0.99,按月付费的 Scale 档 $0.749,渲染包含在内。Jina 按输出 token 计费,未公布每页平均值。 **按每页 5,000 tokens 估算**,Jina 在其 $50 套餐上每 1,000 页约 $0.25,在 $500 套餐上约 $0.225。按此假设,Jina 在任意用量下每页成本都低于 Firecrawl。对于远超 5,000 tokens 的页面(如冗长的文档页),差距会缩小甚至反转;页面较短时差距则扩大。Firecrawl 的 JSON 提取每页加收 4 积分,这会改变提取类任务的对比结果。 ## 哪个更适合整站抓取 (crawl)? Firecrawl。其 crawl endpoint 默认遵循 sitemap,接受页面上限(默认 10,000)和发现深度,若积分不足以覆盖上限则返回 402。另有独立的 map endpoint 用于列出站点 URL,每次调用消耗 1 积分。 Jina Reader 是单 URL 读取器加一个搜索 endpoint,其页面未提及整站抓取 (crawl) 功能。若用 Jina 读取整站,需自行收集 URL(例如从 sitemap 获取),然后逐页调用读取器。 ## 二者如何处理 robots.txt 和站点所有者? Firecrawl 默认遵守 robots.txt,仅 Enterprise 客户可关闭;站点所有者通过 `FirecrawlAgent` token 允许或拒绝。其文档警告该 token 可能并非抓取请求本身的 User-Agent header。 Jina 在请求携带 `X-Robots-Txt` header 时会检查 robots.txt,该 header 指定以哪个 bot 身份进行检查。它还允许调用方覆盖浏览器 User-Agent。其页面未说明两者的默认值。两种做法都把大部分选择权交给客户;我们则不是,下节会说明。 ## 哪个更适合 AI agent? 两者都能很好地服务 agent,但方式不同。Firecrawl 提供托管的 MCP server、带每 IP 每日上限的免密钥访问,以及一长串集成(包括 LangChain、LlamaIndex、CrewAI 和 n8n);OpenClaw 将 Firecrawl 内置为 web_fetch provider。 Jina 提供官方远程 MCP server,其 `read_url` tool 每次调用最多读取五个 URL,还提供 n8n credential,以及任何能发出 GET 请求的工具都可使用的 URL 前缀。对于每个任务只读几页的 agent,Jina 的前缀是最简单的起点;对于需要整站抓取 (crawl)、map 和提取的 agent,Firecrawl 覆盖更广。 ## WebReaderAPI 在两者之间处于什么位置? WebReaderAPI 在功能范围上更接近 Jina(都是读取器),在计费上更接近 Firecrawl(按页计费),并提供用于整站的 crawl endpoint。它与众不同之处在于支付方式和政策,而非功能列表: - **加密货币支付,无需 KYC。** 通过 BTC, USDT, USDC, ETH, SOL, LTC 从 US$25 充值。 - **积分永不过期**,按 pack 出售,起价 US$3.75。 - **对站点有固定政策。** 我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 它的功能比 Firecrawl 少:无 JSON 提取、无浏览器操作、无 map、无免费额度。各切换细节请参阅 [Firecrawl 替代方案](https://webreaderapi.com/zh/alternatives/firecrawl/) 和 [Jina Reader 替代方案](https://webreaderapi.com/zh/alternatives/jina-reader/) 页面。 ## 针对我的用例该选哪个? - **原型或业余 agent:** 无需密钥的 Jina Reader,或 Firecrawl 的免费额度。 - **对文档站点做 RAG:** 整站抓取 (crawl) 和 map 选 Firecrawl;若想要可保留的按页积分和加密货币支付,选 WebReaderAPI。 - **提取到固定字段:** Firecrawl 的 JSON 格式。 - **大量短新闻页或博客页:** Jina 按 token 计费通常成本更低。 - **严格尊重站点所有者的选择,并由服务商强制执行:** WebReaderAPI。 - **没有银行卡、没有身份证件:** WebReaderAPI;在我们阅读的页面上,Firecrawl 和 Jina 均未列出加密货币支付选项。 ## 第三个选项的费用是多少? 按页 pack,以加密货币支付,截至 2026 年 10 月 22 日。需要无头浏览器的页面消耗 2 积分;失败的页面和被 robots.txt 拒绝的页面免费。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | 批量 | 5,000,000 个网页 | US$350 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 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 分钟 ## Firecrawl vs Jina Reader:常见问题 ### Jina Reader 免费而 Firecrawl 收费吗? 两者都提供免费使用。Jina Reader 无需密钥,每分钟 20 次请求,每个新密钥可获得 1000 万 tokens 用于非商业用途。Firecrawl 无需银行卡每月赠送 1,000 积分,另有按 IP 地址每日限额的免密钥 MCP 访问。 ### 哪个返回的 Markdown 更好? 我们不发布质量基准,两个厂商的定价页也都没有声称胜过对方。请自行抽样测试:用你的 50 个真实 URL 分别跑两个服务,然后对比输出中的标题、表格和残余菜单。 ### 两者可以自托管吗? 可以。Firecrawl 的核心是采用 AGPL-3.0 的开源项目。Jina 以 Apache-2.0 发布了其 Reader 的开源分支,不含托管存储层。 ### Firecrawl 或 Jina 接受加密货币吗? 在我们 2026 年 10 月 22 日阅读的定价和账单页面上,并非如此:两者都指定 Stripe,支持银行卡和 PayPal,Jina 还支持 Google Pay。WebReaderAPI 接受 BTC, USDT, USDC, ETH, SOL, LTC。 ### 这个对比中立吗? 它由 WebReaderAPI 撰写,是对手之一,并在开头说明了这一点。关于 Firecrawl 和 Jina 的每项事实都来自其自身页面,列于下方并附有阅读日期。 ## 来源 1. [Firecrawl 定价](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [计费](https://docs.firecrawl.dev/billing.md) — Firecrawl docs (read 2026-10-22) 3. [整站抓取 (crawl)](https://docs.firecrawl.dev/features/crawl.md) — Firecrawl docs (read 2026-10-22) 4. [高级网页抓取指南](https://docs.firecrawl.dev/advanced-scraping-guide.md) — Firecrawl docs (read 2026-10-22) 5. [MCP server](https://docs.firecrawl.dev/mcp-server.md) — Firecrawl docs (read 2026-10-22) 6. [推出 Alexandria 及我们的 B 轮融资](https://www.firecrawl.dev/blog/introducing-alexandria-series-b) — Firecrawl (read 2026-10-22) 7. [Reader](https://jina.ai/reader/) — Jina AI (read 2026-10-22) 8. [API 面板:定价](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 9. [jina-ai/MCP 仓库](https://github.com/jina-ai/MCP) — GitHub (read 2026-10-22) 10. [Elastic 完成对 Jina AI 的收购](https://ir.elastic.co/News--Events/news/news-details/2025/Elastic-Completes-Acquisition-of-Jina-AI-a-Leader-in-Frontier-Models-for-Multimodal-and-Multilingual-Search/default.aspx) — Elastic (2025-10-09, read 2026-10-22) 11. [网页工具](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 网页阅读器 API 价格对比:10K、100K 和 1M 页面的成本 > 网页读取器和 URL 转 Markdown API 定价对比,截至 2026-10-22:13 个 API 在每月 1 万、10 万和 100 万页下的月度账单,涵盖普通页面和 JS 页面。 - URL: https://webreaderapi.com/zh/compare/web-reader-api-pricing/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 积分价格掩盖了套餐规模、浏览器倍率和过期规则。本页将公开标价换算成三个用量档位的月度账单,分别针对普通页面和需要浏览器的页面,然后列出定价页面未提及的成本。 **快速回答 — 2026 年网页阅读器 API 价格如何对比?** 截至 2026-10-22,每月 100,000 个浏览器渲染页面在八家 API 上花费 $99,包括 Firecrawl、Olostep 和 Crawl4AI Cloud;普通页面低至 $29(Scrape.do)。100 万页面时,普通页面起价约 $99,浏览器页面为 $399(Olostep)。**WebReaderAPI** 对 100,000 个普通页面收费 US$21.75,若全部需要浏览器则为 $43.50,以加密货币支付,无需 KYC。 ## 各 API 一个月的页面成本是多少? 10,000、100,000 和 1,000,000 页面的月度账单,使用最便宜的公开套餐、超额或按量付费费率。若提供商对浏览器页面定价不同,则同时显示两个数字(普通 / 浏览器)。 | API | 10,000 个网页 | 100,000 个网页 | 1,000,000 个网页 | | --- | --- | --- | --- | | WebReaderAPI,普通页面 | US$3.75 | US$21.75 | US$74.25 | | WebReaderAPI,浏览器页面(2 积分) | $7.50 | $43.50 | $148.50 | | Firecrawl | $44.00 | $99.00 | $749.00 | | Crawl4AI Cloud,普通 / 浏览器 | $10.00 | $50.00 / $99.00 | $395.00 / $667.00 | | Olostep | $29.00 | $99.00 | $399.00 | | Tavily Extract,普通 / 浏览器 | $16.00 / $30.00 | $140.00 / $236.00 | $1,300 / $2,900 | | Exa contents | $10.00 | $100.00 | $1,000 | | Linkup fetch,普通 / 浏览器 | $10.00 / $50.00 | $100.00 / $500.00 | $1,000 / $5,000 | | ScrapingBee,普通 / 浏览器 | $19.00 | $49.00 / $99.00 | $99.00 / $599.00 | | Scrape.do,普通 / 浏览器 | $29.00 | $29.00 / $99.00 | $99.00 / $699.00 | | ZenRows,普通 / 浏览器 | $5.00 / $25.00 | $39.00 / $99.00 | $199.00 / $549.00 | | Scrapfly,普通 / 浏览器 | $30.00 | $30.00 / $100.00 | $100.00 / $560.00 | | Bright Data Web Unlocker | $15.00 | $150.00 | $1,300 | | Diffbot | $299.00 | $299.00 | $899.00 | *价格核查于 2026年10月22日.* 标价以 USD 计,读取于 2026-10-22。“—”表示未公开或该用量不支持自助购买。Exa 和 Parallel 未记录浏览器选项。完整方法和 21 家 API:[URL 转 Markdown API 价格指数 2026](https://webreaderapi.com/zh/data/url-to-markdown-price-index-2026/)。 ## 定价页面遗漏了哪些成本? 1. **浏览器倍率。** JavaScript 页面在 ScrapingBee、ZenRows 和 Scrape.do 上花费 5 积分,Scrapfly 为 6 积分,ScraperAPI 为 10 积分;Firecrawl 和 Olostep 对每个页面按统一价格渲染。 2. **套餐档位。** 为 20,000 页面购买的 $99 套餐仍然花费 $99。 3. **过期。** 大多数月度套餐会重置未使用的积分;淡季的一个月就是浪费钱。 4. **提取附加项。** 结构化 JSON 提取在多家 API 上额外收费:Firecrawl 每页多 4 积分。 5. **高级连接。** 住宅或“高级”代理在大多数网页抓取 API 上会成倍增加积分成本;WebReaderAPI 仅在选择国家时增加 10 积分。 6. **失败页面。** 检查错误是否计费。WebReaderAPI 对失败页面或被 robots.txt 拒绝的页面不收费。 ## WebReaderAPI 处于什么位置? 按本页价格(设定于 2026-10-22),WebReaderAPI 在 10,000 页面时对每个普通页面收费 US$0.38/千页,100,000 页面时为 US$0.22/千页,100 万页面时为 US$0.07/千页;浏览器页面使用两个积分。积分是预付的,永不过期,以 BTC, USDT, USDC, ETH, SOL, LTC 支付,无需 KYC。 我们不声称在每个用量档位或每种页面类型上都是最便宜的。我们的抓取器尊重 robots.txt,从不试图绕过拒绝,因此其他工具能抓取的某些页面会返回拒绝,且免费。 ## WebReaderAPI 收费多少? 预付套餐;每个普通页面一个积分,使用浏览器时两个积分;积分永不过期。价格设定于 2026-10-22。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | 批量 | 5,000,000 个网页 | US$350 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 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 分钟 ## 网页阅读器 API 定价:常见问题 ### 2026 年最便宜的 URL 转 Markdown API 是哪个? 对于每月 100 万普通页面,ScrapingBee(每 1,000 页 $0.099)和 Scrape.do(每 1,000 页 $0.099)在 2026-10-22 列出了最低价格。该用量档位下的浏览器页面,Olostep 列出 $0.399。答案随用量变化,请按你自己的用量对比。 ### Firecrawl 贵吗? 在小用量下,是的:Hobby 套餐 5,000 页面 $19,即每 1,000 页 $3.80。在 100,000 页面($99)和 100 万页面($749)时,它接近浏览器渲染页面的市场价,因为每个 Firecrawl 页面都会被渲染。 ### 失败页面要付费吗? 取决于提供商;请阅读其计费页面。Crawlbase 声明失败请求和重试免费。WebReaderAPI 对失败页面或被 robots.txt 拒绝的页面不收费。 ### 网页阅读器 API 可以用加密货币支付吗? 可以,少数几家支持。Scrape.do、Decodo Web Data API、Scrapeless 声明账户支持加密货币支付,Exa contents、Parallel Extract、Linkup fetch、Olostep 等通过 x402 接受按请求的 USDC。WebReaderAPI 接受 BTC, USDT, USDC, ETH, SOL, LTC,无需 KYC。 ## 来源 1. [Firecrawl:定价](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Crawl4AI Cloud:定价](https://crawl4ai.com/) — Crawl4AI Cloud (read 2026-10-22) 3. [Olostep:定价](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 4. [Tavily Extract:定价](https://docs.tavily.com/documentation/api-credits) — Tavily Extract (read 2026-10-22) 5. [Exa contents:定价](https://exa.ai/pricing) — Exa contents (read 2026-10-22) 6. [Linkup fetch:定价](https://docs.linkup.so/pages/documentation/development/pricing) — Linkup fetch (read 2026-10-22) 7. [ScrapingBee:定价](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 8. [Scrape.do:定价](https://scrape.do/pricing.md) — Scrape.do (read 2026-10-22) 9. [ZenRows:定价](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 10. [Scrapfly:定价](https://scrapfly.io/pricing) — Scrapfly (read 2026-10-22) 11. [Bright Data Web Unlocker:定价](https://www.bright.cn/pricing/web-unlocker) — Bright Data Web Unlocker (read 2026-10-22) 12. [Diffbot:定价](https://www.diffbot.com/pricing/) — Diffbot (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 联系 WebReaderAPI > 联系 WebReaderAPI:API 与账单问题请发支持邮箱,站长与滥用举报请发 abuse 邮箱,以及如何写出能快速得到回复的邮件。 - URL: https://webreaderapi.com/zh/contact/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 两个地址:一个面向客户,一个面向站长和滥用举报。两个地址都有真人阅读。 **快速回答 — 如何联系 WebReaderAPI?** API、账户或付款问题请写信至 support@webreaderapi.com;支持团队每周每天 12 小时内回复,包括抓取和集成方面的帮助。站长以及举报 **WebReaderAPI** 爬虫被滥用的人可以写信至 abuse@webreaderapi.com。我们的团队绝不会通过电子邮件或聊天向您索取账号或 API 密钥。 ## 怎样写支持请求才能快速得到回复? 内容简短、事实清楚的消息回复最快: - 账单问题:附上订单历史中的订单 ID; - API 问题:附上请求时间、endpoint 和错误码; - 页面返回结果不符合预期:附上你尝试读取的 URL。 切勿通过邮件发送你的 API 密钥或账户编号。 ## 我运营一个网站,怎么联系你们? 请写信至 abuse@webreaderapi.com,附上你的域名、日期和时间,以及一行服务器日志,显示 User-Agent 为 `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`。若想不联系我们也能阻止我们的爬虫,请在 robots.txt 中为 `WebReaderAPI` 添加规则;[bot 页面](https://webreaderapi.com/zh/bot/)提供了现成示例。每条滥用报告都由人工审阅,被发现滥用服务的账户将被暂停。 ## 支持团队能帮我什么? 任何关于使用 API 或你的账户的问题: - 页面返回为空、被截断,或错误地把某个区块当作正文保留; - 你不理解的错误码,或提前停止的整站抓取 (crawl) 任务; - 充值在达到确认数后仍未出现在你的余额中; - 根据[退款政策](https://webreaderapi.com/zh/refunds/)提出的退款请求; - 为生产环境申请更高的并发上限。 支持团队无法让某个网站接受我们的爬虫。当网站拒绝我们时,唯一的途径是获得站长的许可。 ## 如何报告付款问题? 请提供币种、网络、发送金额和交易 ID,以及客户端区域中的订单 ID。这些信息足以在区块链上找到任何转账。请勿包含私钥、助记词、账户编号或 API 密钥:我们从不需要这些,任何索要这些信息的人都不是我们。 ## 有在线聊天或电话吗? 没有。邮件为双方保留书面记录,也让我们能随时调取日志、精确作答。API 运行状态请见[状态页](https://webreaderapi.com/zh/status/);常见问题请见[FAQ](https://webreaderapi.com/zh/faq/)。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 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 — 无身份证、无自拍、无证件。加密货币支付。 --- # 用加密货币支付网页读取 API > 如何用加密货币支付 WebReaderAPI:BTC、USDT、USDC、ETH、SOL 或 LTC,US$25 的最低充值额,该选择哪个网络,以及发送后该做什么。 - URL: https://webreaderapi.com/zh/crypto-payments/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 分步指南:用加密货币为你的 WebReaderAPI 余额充值,并将其转换为页面积分,以及需要避免的错误。 **快速回答 — 我如何用加密货币支付 WebReaderAPI?** 用至少 US$25 的 BTC, USDT, USDC, ETH, SOL, LTC 为你的 **WebReaderAPI** 余额充值:在显示的网络上传送显示的精确金额,然后点击 "I've sent the payment"。充值会按其精确金额进行匹配,并在确认后入账。然后你从余额中购买页面积分,从 US$3.75 起可购 10,000 个网页。无需 KYC。 ## 我可以用哪些币种支付? 六种币,一个余额。USDT 支持 TRC-20 或 ERC-20,USDC 支持 ERC-20;支付页面会显示你所选币种的地址和网络。 - Bitcoin (BTC) - Tether (USDT) — TRC-20 or ERC-20 - USD Coin (USDC) — ERC-20 - Ethereum (ETH) - Solana (SOL) - Litecoin (LTC) ## 加密货币充值是如何一步步进行的? 从空账户到可用的 API 密钥共五步。唯一的等待是区块链确认。 1. **选择金额和币种** — 输入至少 US$25,并选择 BTC、USDT、USDC、ETH、SOL 或 LTC。支付页面会将美元金额转换为该币种。 2. **发送精确金额** — 复制显示的地址和金额,并在页面指定的网络上传送:单笔转账、精确数额、不做舍入。 3. **点击 "I've sent the payment"** — 告诉页面转账已发出。如果它要求填写交易 ID,就粘贴进去,方便找到这笔转账。 4. **让网络确认** — 充值会按精确金额匹配,并在网络确认后入账。Bitcoin 比 Tron 上的 USDT 或 Solana 上的 SOL 需要更长时间。 5. **购买积分包** — 用余额支付任意积分包。如果你是从某个积分包开始购买的,充值入账后即完成购买,你的 API 密钥会显示在控制台中。 ## 我应该使用哪种币和网络? 使用你已持有的币,并在支付页面指定的网络上转账。稳定币(USDT 或 USDC)能让金额保持为美元计价,所以看到的价格就是实际支付的价格。网络手续费和确认时间因链而异;上面步骤中的表格列出了各网络常见的确认时间。 如果你在多个链上都有 USDT,就选一笔对你金额来说手续费更小的。手续费由付款方支付,不计入你的充值。 ## 为什么有最低充值额? 因为无论金额大小,每笔付款都需要我们核对和记账。最低额为 US$25;之后即可用余额购买任意积分包,包括 10,000 个网页 的 US$3.75 积分包。 未花完的钱会一直留在余额里,没有有效期。如果你购买的积分包价格低于最低充值额,未使用的部分可在 30 天内以 USDT 或 USDC 申请退回。 ## 发送付款后会发生什么? 在支付页面点击「我已发送付款」。我们会按精确金额匹配这笔转账,等待网络所需的确认数,然后为你的余额入账。如果你是从某个积分包开始购买的,充值入账后即从余额中完成购买,你的 API 密钥会在控制台中准备好。 如果你关闭了标签页,请打开客户区:待处理和已入账的充值会显示在你的订单历史中。 ## 如果我金额填错或选错网络怎么办? 金额不同无法自动匹配,而发到其他网络的转账可能根本无法到达该地址。发送前请核对三件事:币、网络和精确金额。 如果已经出错,请将交易 ID 和订单 ID 发送至 support@webreaderapi.com。不要发送你的账号或 API 密钥。发到支付页面未显示的网络上的资金可能无法找回。 ## 加密货币付款可以退款吗? 退款会退到你的余额,而不是退回钱包,这样可以避免第二次网络手续费。72 小时内使用不足 20% 的积分包,或从未成功使用的积分包,会退回为积分。[退款政策](https://webreaderapi.com/zh/refunds/) 给出了确切条件和三个示例。 ## 余额入账后我可以购买什么? 任意积分包:10,000 个网页 为 US$3.75,50,000 个网页 为 US$14.25,或 100,000 个网页 为 US$21.75,更大的包见[价格页面](https://webreaderapi.com/zh/pricing/)。积分永不过期。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 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 · 失败和被拒绝的页面不收费 · 积分永不过期 价格以 USD 计,设定于 2026-10-22。每个积分包都从你的加密货币余额支付。 ## 使用加密货币付款:常见问题 ### 付款需要银行卡或身份证件吗? 不需要。WebReaderAPI 只接受加密货币,不要求身份证明文件。使用账号登录;邮箱为可选。 ### 开始付款时价格是固定的吗? 支付页面会显示你为该笔付款所选币种的金额。请发送该精确金额;稳定币能使其与美元价格保持一致。 ### 我可以按每次请求付费购买积分,而不是充值吗? 不可以。付款通过预付余额进行,每次读取都从余额中扣除积分。余额和积分永不过期。 ### 在哪里查看我的付款? 在客户区的订单历史中,可查看每笔充值的状态、币种、网络和交易 ID。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # URL 转 Markdown API 价格指数 2026:21 个 API 每 1,000 页的成本 > URL 转 Markdown 与网页读取 API 价格指数 2026:21 个 API,3 种用量下每 1,000 页的成本,静态页与 JavaScript 页,加密货币,KYC。核对于 2026-10-22。 - URL: https://webreaderapi.com/zh/data/url-to-markdown-price-index-2026/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 21 个将网页转换为 Markdown 或文本供模型使用的 API 的公开标价,按三种月度用量折算为每 1,000 页的成本,分别针对普通页面和需要浏览器渲染的页面。由 WebReaderAPI 发布,它也是表格中的 API 之一。 **快速回答 — 2026 年 URL 转 Markdown API 每 1,000 页要多少钱?** 在我们于 2026-10-22 读取标价的 21 个 API 中,每月读取 100,000 个普通页面的中位成本为每 1,000 页 $0.99,页面需要浏览器时为 $1.00。每月 100 万页时,中位数降至 $0.774 和 $0.899。发布本指数的 **WebReaderAPI** 在 100,000 页时对普通页面收费 US$0.22/千页。 ## 用六个数字看这份指数 - **$2.00** 每月 10,000 页时每 1,000 普通页的中位数 (21 个 API) - **$0.99** 每月 100,000 页时每 1,000 普通页的中位数 (21 个 API) - **$0.774** 每月 100 万页时,每 1,000 个普通网页的中位数价格 (20 个 API) - **$1.00** 每月 10 万页时,每 1,000 个浏览器渲染网页的中位数价格 (18 个 API) - **$0.899** 每月 100 万页时,每 1,000 个浏览器渲染网页的中位数价格 (17 个 API) - **3 + 7** 在账户页面明确说明支持加密货币支付的 API,以及按请求收取 USDC(x402)的 API ## 这个指数是怎么构建的? 我们于 2026-10-22 阅读了每个提供商公开的定价页面,只保留了页面上显示的数字;所有来源列在底部。这里的“网页”是指读取一个 URL 并以 Markdown 或文本形式返回,使用提供商默认的代理,且不购买付费附加项。 - **普通网页:** 不做 JavaScript 渲染。**浏览器网页:** 先由无头浏览器渲染;始终进行渲染的提供商(Firecrawl、Olostep、Diffbot)在两张表中的价格相同。 - **某一用量下的价格:** 在同一提供商处每月购买这么多页面的最便宜的公开方式(套餐、套餐加上公开的超量计费,或按量付费),再除以所用页数。用 99 美元的套餐使用 10 万页,即使该套餐包含更多页数,也按每 1,000 页 0.99 美元计算。 - **已计入积分倍数**,例如 ScrapingBee、ZenRows 和 Scrape.do 的每个浏览器网页按 5 积分计算。 - **免费额度只列出,不计价。** 按 token、浏览器时间、数据量或算力计费的 API,以及一个我们无法确认其 Markdown 输出的 API,单独列出。 WebReaderAPI 仅供参考显示,不计入中位数。 ## 按每月用量计,每 1,000 个普通网页的价格 静态页面,无需浏览器即可读取。“—”表示未公开,或在该用量下不支持自助购买。 | API | 每月 1 万页 | 每月 10 万页 | 每月 100 万页 | | --- | --- | --- | --- | | WebReaderAPI(预付,永不过期) | US$0.38/千页 | US$0.22/千页 | US$0.07/千页 | | Firecrawl | $4.40 | $0.99 | $0.749 | | Tavily Extract | $1.60 | $1.40 | $1.30 | | Exa contents | $1.00 | $1.00 | $1.00 | | Parallel Extract | $1.00 | $1.00 | $1.00 | | Linkup fetch | $1.00 | $1.00 | $1.00 | | Olostep | $2.90 | $0.99 | $0.399 | | ScrapeGraphAI | $2.00 | $1.00 | $1.25 | | Diffbot | $29.90 | $2.99 | $0.899 | | ScrapingBee | $1.90 | $0.49 | $0.099 | | ScraperAPI | $4.90 | $0.49 | $0.149 | | ZenRows | $0.50 | $0.39 | $0.199 | | Scrapfly | $3.00 | $0.30 | $0.10 | | Scrape.do | $2.90 | $0.29 | $0.099 | | Crawlbase | $2.10 | $0.764 | $0.349 | | Bright Data Web Unlocker | $1.50 | $1.50 | $1.30 | | Oxylabs Web Scraper API | $3.00 | $1.00 | $2.50 | | Decodo Web Data API | $1.90 | $0.49 | $0.249 | | Scrapeless | $1.00 | $0.90 | $0.80 | | Hyperbrowser Fetch | $3.00 | $1.00 | — | | Steel scrape | $5.00 | $5.00 | $5.00 | | Crawl4AI Cloud | $1.00 | $0.50 | $0.395 | *价格核查于 2026年10月22日.* 标价以 USD 计,读取于 2026-10-22。我们的价格:同日的 WebReaderAPI 定价页面。 ## 按每月用量计,每 1,000 个浏览器渲染网页的价格 需要 JavaScript 的页面,在无头浏览器中渲染。未说明支持浏览器渲染的 API 不列入此表。 | API | 每月 1 万页 | 每月 10 万页 | 每月 100 万页 | | --- | --- | --- | --- | | WebReaderAPI(每页 2 积分) | $0.75/1K 页 | $0.435/1K 页 | $0.148/1K 页 | | Firecrawl | $4.40 | $0.99 | $0.749 | | Tavily Extract | $3.00 | $2.36 | $2.90 | | Linkup fetch | $5.00 | $5.00 | $5.00 | | Olostep | $2.90 | $0.99 | $0.399 | | ScrapeGraphAI | $2.00 | $1.00 | $1.25 | | Diffbot | $29.90 | $2.99 | $0.899 | | ScrapingBee | $1.90 | $0.99 | $0.599 | | ScraperAPI | $4.90 | $1.49 | $0.975 | | ZenRows | $2.50 | $0.99 | $0.549 | | Scrapfly | $3.00 | $1.00 | $0.56 | | Scrape.do | $2.90 | $0.99 | $0.699 | | Crawlbase | — | $0.99 | $0.599 | | Bright Data Web Unlocker | $1.50 | $1.50 | $1.30 | | Oxylabs Web Scraper API | $3.00 | $5.00 | $2.50 | | Decodo Web Data API | $1.90 | $0.99 | $0.999 | | Hyperbrowser Fetch | $3.00 | $1.00 | — | | Steel scrape | $5.00 | $5.00 | $5.00 | | Crawl4AI Cloud | $1.00 | $0.99 | $0.667 | *价格核查于 2026年10月22日.* ## 为什么不同 API 之间的价格差这么多? 大部分价差可以归结为四点。 1. **产品类型。** 通用网页抓取 API(ScrapingBee、Scrape.do、ZenRows、Scrapfly)按用量定价,每月 100 万页时,每 1,000 个普通网页约为 $0.10。面向 AI 的读取类 API(Exa、Parallel、Linkup)统一收费 $1.00,并增加检索功能。 2. **浏览器倍数。** 在按积分计费的 API 处,一个浏览器网页的价格是普通网页的 2 到 10 倍;统一定价的 API 对两者收取相同价格。 3. **套餐档位。** 许多提供商出售带有大量额度的月度套餐,因此小用量用户会为未使用的页数付费:每月 1 万个普通网页的中位数价格为 $2.00。 4. **过期。** 大多数套餐每月重置未使用的积分;ScrapeGraphAI、Crawlbase、Crawl4AI Cloud 保留已购买的积分,不按月重置。 ## 免费额度、过期、加密货币、身份验证和 robots.txt 每家提供商在我们阅读的页面上所陈述的内容。“未说明”表示页面没有提及。 | API | 免费套餐 | 积分有效期 | 加密货币支付 | 身份验证 | robots.txt | | --- | --- | --- | --- | --- | --- | | WebReaderAPI | 无 | 从不 | BTC, USDT, USDC, ETH, SOL, LTC | 无:无需身份证件、无需自拍、无需文件 | 遵守;从不覆盖 | | Firecrawl | 每月 1,000 积分,无需信用卡 | 套餐积分每月重置 | 不支持(银行卡、PayPal) | 未说明 | 默认遵守;仅 Enterprise 可覆盖 | | Tavily Extract | 每月 1,000 积分(5,000 个基础 URL) | 每月重置 | 仅由其自行决定(条款) | 未说明 | 未说明 | | Exa contents | 每月 $10 积分 | 免费积分每月重置 | 按请求,USDC (x402) | 按量付费支持银行卡 | 针对其索引爬虫的说明,不适用于用户抓取 | | Parallel Extract | 每月 5,000 次请求 | 免费积分每月过期 | 按请求,USDC (x402) | 用卡获取每月积分 | 针对其索引爬虫的说明,不适用于用户抓取 | | Linkup fetch | 每月 $20(专业邮箱) | 未说明 | 按请求,USDC (x402) | 专业邮箱换取免费积分 | 整站抓取 (crawl) 遵守;网页抓取未说明 | | Olostep | 500 次请求试用 | 套餐按月;充值有效 6 个月 | 按请求,USDC (x402) | 充值支持银行卡 | 工具遵守它;默认值未说明 | | ScrapeGraphAI | 500 积分 | 套餐积分不结转;充值永不过期 | 仅限 agents (MPP) | 未说明 | 客户必须遵守(条款) | | Diffbot | 每月 10,000 积分 | 配额每个周期重置 | 未说明 | 免费计划无需卡 | 整站抓取 (crawl) 默认遵守;正文提取未说明 | | ScrapingBee | 1,000 积分 | 不结转 | 否 | 付费计划支持银行卡 | 未说明 | | ScraperAPI | 5,000 积分,有效期 7 天 | 每个计费周期过期 | 否 | 未说明 | 未说明 | | ZenRows | 每月 5,000 积分 | 续费时 | 账户:不支持;agents:USDC (x402) | 邮箱验证 | 未说明 | | Scrapfly | 1,000 积分,仅一次 | 不结转 | 未说明 | 每位客户都需 KYC | Crawler API 默认遵守;可禁用 | | Scrape.do | 每月 1,000 积分 | 未说明 | 是(未说明币种) | 未说明 | 未说明 | | Crawlbase | 1,000 积分 | 按量付费:永不过期 | 未说明 | 未说明 | 未说明 | | Bright Data Web Unlocker | 每月 5,000 积分 | 免费积分每月重置 | 否 | 个人邮箱账户用卡;robots 禁止的页面需公司 KYC | 默认遵守 | | Oxylabs Web Scraper API | 一次性 $5 积分 | 周期结束 | 否 | 每位客户都需 KYC | 未提及 | | Decodo Web Data API | 每月最多 10,000 次请求 | 未用金额按月过期 | 是(通过 CoinGate) | 自动检查,然后是 KYC | 未说明 | | Scrapeless | 试用,规模未说明 | 不保留预付费最低额 | 是(未说明币种) | 基础套餐无 | 未说明 | | Hyperbrowser Fetch | 5,000 积分 | 购买的积分:12 个月 | 按请求,USDC (x402) | 未说明 | 未说明 | | Steel scrape | 一次性 $30(90 天) | 启动积分 90 天 | 按请求,USDC (x402) | 无需银行卡 | 条款禁止违反 | | Crawl4AI Cloud | 每月 1,000 积分 | 购买的积分永不过期 | 未说明 | 无需银行卡 | 条款要求遵守 | *价格核查于 2026年10月22日.* ## 主要发现是什么? - **普通页面在大规模下便宜。** 每月 100 万页时,ScrapingBee($0.099)、Scrape.do($0.099)、Scrapfly($0.10)列出的普通页面价格最低。 - **浏览器页面成本更高。** 每月 100 万页时,Olostep($0.399)、ZenRows($0.549)、Scrapfly($0.56)列出的浏览器页面价格最低。 - **最知名的读取器并不最便宜。** 在 100,000 页时 Firecrawl 列出每 1,000 页 $0.99,100 万页时 $0.749,每页都进行渲染。 - **加密货币在账户中很少见。** Scrape.do、Decodo Web Data API、Scrapeless 表示支持加密货币支付;Exa contents、Parallel Extract、Linkup fetch、Olostep、ZenRows、Hyperbrowser Fetch、Steel scrape 通过 x402 按请求支付 USDC。 - **robots.txt 通常留给客户决定。** 声明默认遵守 robots.txt 的提供商,至少在其整站抓取 (crawl) 产品中:Firecrawl、Diffbot、Scrapfly、Bright Data Web Unlocker。许多则未提及。 - **KYC 是例外。** Oxylabs 和 Scrapfly 要求每位客户进行 KYC;Decodo 先运行自动检查。 ## 以其他方式计费的 API(不在中位数中) 这些按 token、浏览器时间、数据量或计算量计费,或未确认 Markdown 输出,因此每页价格取决于你的页面。 | API | 价格 | 注意 | | --- | --- | --- | | Jina Reader | 每 10 亿输出 token $50;每 110 亿 $500 | 按 token 计费:每页成本取决于页面长度。每个新 API 密钥赠送 1000 万免费 token,仅限非商业用途。 | | Cloudflare Browser Run | 包含 10 小时之后每浏览器小时 $0.09,每月最低 $5 | 按浏览器时间计费;/markdown、/content 和 /crawl 端点。 | | Spider | 每 GB 内容 $1 加计算量 | 按数据量计费;其公布的每页数字是其自身估算。 | | Apify Website Content Crawler | 计算单元(Business 版每单元 $0.13) | 按计算量计费;其公布的每页数字是其自身估算。 | | Zyte API | 每 1,000 次静态请求 $0.13(网站 tier 1,按量付费);使用浏览器时 $1.01 | 价格取决于 Zyte 为每个网站分配的 tier;我们阅读的页面上未说明 Markdown 输出。 | *价格核查于 2026年10月22日.* ## 我可以复用这些数据吗? 可以。本页面的表格依据 Creative Commons Attribution 4.0 许可证(CC BY 4.0)发布:复制和改编时请附上本页面链接及日期 2026-10-22。我们至少每月重新读取一次价格。 如果某个数字有误,请写信至 support@webreaderapi.com 并附上显示正确数字的页面;我们会更正并在[变更日志](https://webreaderapi.com/zh/changelog/)中注明更改。 ## 价格指数:常见问题 ### 哪个 URL 转 Markdown API 成本最低? 取决于规模和 JavaScript。2026-10-22,每月 100 万页时,普通页面最低价为 ScrapingBee 每 1,000 页 $0.099 和 Scrape.do 每 1,000 页 $0.099;该规模下浏览器页面最低价为 Olostep $0.399。 ### Firecrawl 每页成本是多少? Firecrawl 每页收取 1 积分(含 JavaScript):Hobby 版 5,000 积分 $19,Standard 版 100,000 积分 $99,Scale 版 100 万积分 $749,读取自其定价页面 2026-10-22。JSON 提取每页增加 4 积分。 ### 为什么 Jina Reader 不在主表中? Jina 按输出 token 计费(其最小套餐为每 10 亿 token $50),因此其每页价格取决于你的页面有多长。它列在按其他方式计费的 API 表格中。 ### WebReaderAPI 会把自身计入中位数吗? WebReaderAPI 发布此索引,仅作参考出现在前几行。中位数使用其他提供商。 ### 索引多久更新一次? 至少每月一次,以及当所列提供商更改其公开价格时。顶部的日期显示最后一次完整检查。 ## 来源 1. [Firecrawl:定价](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Tavily Extract:定价](https://docs.tavily.com/documentation/api-credits) — Tavily (read 2026-10-22) 3. [Exa contents:定价](https://exa.ai/pricing) — Exa (read 2026-10-22) 4. [Parallel Extract:定价](https://parallel.ai/pricing) — Parallel (read 2026-10-22) 5. [Linkup fetch:定价](https://docs.linkup.so/pages/documentation/development/pricing) — Linkup (read 2026-10-22) 6. [Olostep:定价](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 7. [ScrapeGraphAI:定价](https://scrapegraphai.com/pricing) — ScrapeGraphAI (read 2026-10-22) 8. [Diffbot:定价](https://www.diffbot.com/pricing/) — Diffbot (read 2026-10-22) 9. [ScrapingBee:定价](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 10. [ScraperAPI:定价](https://www.scraperapi.com/pricing/) — ScraperAPI (read 2026-10-22) 11. [ZenRows:定价](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 12. [Scrapfly:定价](https://scrapfly.io/pricing) — Scrapfly (read 2026-10-22) 13. [Scrape.do:定价](https://scrape.do/pricing.md) — Scrape.do (read 2026-10-22) 14. [Crawlbase:定价](https://crawlbase.com/pricing) — Crawlbase (read 2026-10-22) 15. [Bright Data Web Unlocker:定价](https://www.bright.cn/pricing/web-unlocker) — Bright Data (read 2026-10-22) 16. [Oxylabs Web Scraper API:定价](https://oxylabs.io/pricing/web-scraper-api) — Oxylabs (read 2026-10-22) 17. [Decodo Web Data API:定价](https://help.decodo.com/docs/web-data-api-billing) — Decodo (read 2026-10-22) 18. [Scrapeless:定价](https://www.scrapeless.com/en/pricing) — Scrapeless (read 2026-10-22) 19. [Hyperbrowser Fetch:定价](https://hyperbrowser.ai/docs/pricing.md) — Hyperbrowser (read 2026-10-22) 20. [Steel scrape:定价](https://docs.steel.dev/overview/pricinglimits) — Steel (read 2026-10-22) 21. [Crawl4AI Cloud:定价](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 22. [Jina Reader:定价](https://jina.ai/api-dashboard/pricing/) — Jina Reader (read 2026-10-22) 23. [Cloudflare Browser Run:定价](https://developers.cloudflare.com/browser-run/pricing/) — Cloudflare Browser Run (read 2026-10-22) 24. [Spider:定价](https://spider.cloud/pricing) — Spider (read 2026-10-22) 25. [Apify Website Content Crawler:定价](https://apify.com/apify/website-content-crawler) — Apify Website Content Crawler (read 2026-10-22) 26. [Zyte API:定价](https://www.zyte.com/pricing/) — Zyte API (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # URL 转 Markdown API 快速入门:两分钟读取第一个页面 > URL 转 Markdown API 快速入门:获取密钥,用 curl、Python 或 Node.js 读取你的第一个页面,并查看你的积分。低至 US$0.07/千页,无需 KYC。 - URL: https://webreaderapi.com/zh/docs/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 一个 endpoint,一个参数:将 URL 发送到 `/read`,即可获取页面正文的 Markdown 内容。本页将带你从零余额到成功调用,并指向其他所有内容。 **快速回答 — 如何用 API 将 URL 转换为 Markdown?** 将 URL 发送到 `GET https://webreaderapi.com/api/v1/read`,并在 `Authorization` 请求头中携带你的 API 密钥。**WebReaderAPI** 会抓取页面,保留正文,并以 Markdown 形式返回,并附带标题、作者、日期和字数。一个页面消耗 1 积分(如需浏览器则消耗 2 积分),截至 2026 年 10 月,价格从 US$0.07/千页 起。无需 KYC;使用加密货币支付。 ## API 一览表 | 属性 | 值 | | --- | --- | | Base URL | `https://webreaderapi.com/api/v1` | | 读取单个页面 | `GET` 或 `POST https://webreaderapi.com/api/v1/read` | | 多个 URL 或整站 | `POST https://webreaderapi.com/api/v1/batch` 和 `POST https://webreaderapi.com/api/v1/crawl`,结果从 `GET https://webreaderapi.com/api/v1/jobs/{job_id}` 开始 | | 剩余积分 | `GET https://webreaderapi.com/api/v1/credits`(免费) | | 身份验证 | 在 Authorization 请求头中以 Bearer token 形式发送你的 API 密钥,或在 api_key 查询参数中发送 | | 计费 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | | 我们的爬虫 | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`,robots.txt 令牌 `WebReaderAPI` | | 最小积分包 | 10,000 个网页 兑换 US$3.75;积分永不过期 | ## 如何获取 API 密钥? 三步搞定,无需填表。最慢的一步是你的充值在区块链上确认。 1. **用加密货币充值** — 发送至少 US$25 的 BTC, USDT, USDC, ETH, SOL, LTC。使用账号登录;邮箱为可选。 2. **购买积分包** — 10,000 个网页 换 US$3.75 足够在你自己的 URL 上测试每个选项。 3. **复制你的密钥** — 你的加密货币充值确认且购买积分包后,API 密钥即在控制台中可用。将它存进名为 WEBREADER_API_KEY 的环境变量。 ## 第一个请求长什么样? 就是一个普通的 HTTPS GET,页面地址放在 `url` 参数里。要对地址进行编码,因为它本身含有 `:` 和 `/` 字符;用 `--data-urlencode` 时 curl 会替你完成编码。默认设置已经适合大多数文章和文档页面:Markdown 输出、只取正文、仅在页面需要时才用浏览器。 *curl:读取一个页面* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/blog/first-post" ``` *Python:读取一个页面并保存* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/blog/first-post"}, timeout=70, ) resp.raise_for_status() page = resp.json() print(page["title"], "-", page["word_count"], "words,", page["credits_used"], "credit(s)") with open("first-post.md", "w", encoding="utf-8") as f: f.write(page["markdown"]) ``` *Node.js 18+:读取一个页面* ```javascript const params = new URLSearchParams({ url: 'https://example.com/blog/first-post' }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const page = await res.json(); if (!res.ok) throw new Error(`${page.error.code}: ${page.error.message}`); console.log(page.title, page.word_count, 'words'); console.log(page.markdown.slice(0, 500)); ``` ## 返回什么? 一个 JSON 对象,Markdown 在 `markdown` 字段中,旁边是页面元数据:`title`、`description`、`author`、`published_at`、`language`、`site_name` 和 `word_count`。有两个字段帮你核实发生了什么:`final_url` 是重定向后的地址,`rendered` 告诉你当时是否需要浏览器。 `credits_used` 显示这次调用的花费:普通页面 1,`rendered` 为 `true` 时 2,若你选择了 `country` 再加 1。[响应格式](https://webreaderapi.com/zh/docs/response/) 页面列出了每个字段并附示例。 ## 哪些选项我会用得最多? 五个参数覆盖大多数需求,全部可选。 | 参数 | 用途 | |---|---| | `format` | 获取 `text` 或清理后的 `html`,而不是 `markdown` | | `main_content` | 设置 `false` 以转换整个页面,包括菜单 | | `render` | 强制(`true`)或禁止(`false`)浏览器;`auto` 决定 | | `include_links` | 以单独列表获取页面的链接 | | `max_chars` | 截断长页面以适配模型的上下文预算 | [读取参考](https://webreaderapi.com/zh/docs/read/) 介绍了每个参数,包括 `country`、`include_images` 和 `timeout`。 ## 如何查看剩余积分? 用同一个密钥调用 `GET https://webreaderapi.com/api/v1/credits`。它返回 `credits_remaining`、`credits_used_today` 和你的 `concurrency_limit`,并且不花费任何积分。在长任务开始时运行它,这样任务可以干净地停止,而不是中途因 `402 insufficient_credits` 失败。 预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用,因此为一个项目购买的积分包在下一个项目中依然保值。 ## 如果网站不允许 robots 怎么办? 我们不读取该页面,也不向你收费。我们的爬虫以 `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` 标识自身,并遵守网站的 robots.txt。被禁止的页面返回 `403 blocked_by_robots`;以其他方式拒绝请求的网站返回 `502 target_refused` 并附带该网站自己的状态码。 如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。[错误页面](https://webreaderapi.com/zh/docs/errors/) 说明了哪些错误值得重试、哪些是最终错误。 ## 接下来去哪? - [阅读 endpoint 参考](https://webreaderapi.com/zh/docs/read/) — /read 的每个参数及示例 - [批量与整站抓取](https://webreaderapi.com/zh/docs/crawl/) — 每批最多 100 个 URL,或整站抓取 (crawl) - [响应格式](https://webreaderapi.com/zh/docs/response/) — 响应的每个字段 - [错误与 robots.txt](https://webreaderapi.com/zh/docs/errors/) — 状态码、原因和重试规则 - [Python](https://webreaderapi.com/zh/docs/python/) — requests、async httpx、RAG 分块 - [Node.js](https://webreaderapi.com/zh/docs/node/) — fetch、小型连接池、crawl 轮询 - [curl 和 jq](https://webreaderapi.com/zh/docs/curl/) — 终端操作配方 - [MCP server](https://webreaderapi.com/zh/docs/mcp/) — 适用于 Claude 和 Cursor 的 read_url 工具 - [LangChain 和 LlamaIndex](https://webreaderapi.com/zh/docs/langchain/) — 适用于 RAG 的加载器和工具 - [OpenAI function calling](https://webreaderapi.com/zh/docs/openai/) — read_url 工具 schema 和循环 - [n8n](https://webreaderapi.com/zh/docs/n8n/) — 适用于 AI Agent 的 HTTP Request 工具 - [OpenClaw](https://webreaderapi.com/zh/docs/openclaw/) — 在 web_fetch 旁边添加 MCP 服务器 ## 快速开始:常见问题 ### 有 SDK 需要安装吗? 没有。WebReaderAPI 是普通的 HTTPS API,因此任何 HTTP 客户端都能用。文档提供了 Python、Node.js 和 curl 的复制粘贴代码,以及 MCP、LangChain、LlamaIndex 和 OpenAI function calling 的工具定义。没有任何东西以包的形式发布。 ### 可以把密钥放在 URL 里而不是 header 里吗? 可以,作为 `api_key` 查询参数。`Authorization: Bearer` header 更安全,因为 URL 常常会出现在日志和浏览器历史中。创建多个 API 密钥,例如每个 agent 或项目一个,并可从控制台撤销其中任意一个。 ### 失败的页面会消耗积分吗? 不会。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。只有返回内容的页面才计费。 ### 可以先试用再购买吗? 没有免费套餐。没有免费套餐:最小的积分包是测试的途径,用最低充值额支付,仅为达到该最低额而多充的金额,可在 30 天内按要求以 USDT 或 USDC 退回,前提是尚未使用。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 批量与整站抓取 (crawl) API:读取多个 URL 或整个网站 > 批量与整站抓取 (crawl) API 参考:每个任务最多读取 100 个 URL,或整个网站最多 10,000 页,遵守 robots.txt 和 Crawl-delay。无需 KYC,加密货币支付。 - URL: https://webreaderapi.com/zh/docs/crawl/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 两个 endpoint 启动后台任务:`/batch` 用于最多 100 个 URL 的列表,`/crawl` 用于一个网站。两者都返回 job ID;你从 `/jobs/{job_id}` 收集页面,一次一页结果。 **快速回答 — 如何使用 WebReaderAPI 将网站整站抓取 (crawl) 为 Markdown?** 将起始 URL 连同页面 `limit` 发送到 `POST https://webreaderapi.com/api/v1/crawl`。**WebReaderAPI** 在后台读取网站,仅限同一域名,遵循其 sitemap、robots.txt 和 Crawl-delay,每个任务最多 10,000 页。从任务中收集 Markdown 页面,一次一页结果。每次页面读取花费 1 积分(使用浏览器为 2),自 2026 年 10 月起从 US$0.07/千页 起。无需 KYC;加密货币支付。 ## 任务一览 | 属性 | 值 | | --- | --- | | 批量 | 每个批量任务最多 100 个 URL:`POST https://webreaderapi.com/api/v1/batch` | | 整站抓取 (crawl) | 每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay:`POST https://webreaderapi.com/api/v1/crawl` | | 结果 | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`,然后 `?cursor=…` 获取下一页结果 | | 计费 | 每次页面读取按 `/read` 调用计费;被 robots.txt 跳过的页面和失败的页面不收费 | | 整站抓取 (crawl) 范围 | 一个域名;指向其他域名的链接会列出但不读取 | | 取消任务 | v1 中不可用:将 `limit` 设置为你准备支付的最大页数 | ## 启动批量任务 `POST /api/v1/batch` 在后台使用相同选项读取最多 100 个 URL。选项使用 [/read](https://webreaderapi.com/zh/docs/read/) 的名称和值。答案是 job ID;值仅为示例。 认证:将 API 密钥放在 `Authorization: Bearer API_KEY` 请求头中。 **请求体** | 字段 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | `urls` | array of strings | 是 | 1 到 100 个 http 或 https URL。重复的只读取一次。 | | `options` | object | 否 | 除 `url` 外的任意 `/read` 参数:`format`、`main_content`、`render`、`include_links`、`include_images`、`country`、`max_chars`、`timeout`。 | *示例: three articles as Markdown* ```json { "urls": [ "https://example.com/blog/post-1", "https://example.com/blog/post-2", "https://example.org/news/launch" ], "options": { "format": "markdown", "max_chars": 50000 } } ``` **响应** `202 Accepted` ```json { "job_id": "job_5c1e8a90d2" } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/batch" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"urls": ["https://example.com/blog/post-1", "https://example.com/blog/post-2"], "options": {"format": "markdown"}}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/batch", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"urls": ["https://example.com/blog/post-1", "https://example.com/blog/post-2"], "options": {"format": "markdown"}}, timeout=30, ) print(resp.json()["job_id"]) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/batch', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ urls: ['https://example.com/blog/post-1', 'https://example.com/blog/post-2'], options: { format: 'markdown' } }), }); console.log((await res.json()).job_id); ``` ## 启动一个整站抓取 (crawl) 任务 `POST /api/v1/crawl` 从一个起始 URL 开始,按广度优先读取一个网站。爬虫只会停留在起始 URL 的域名内,使用 robots.txt 中指定的站点地图或位于 `/sitemap.xml` 的站点地图,并遵守 robots.txt 和 Crawl-delay。以下数值仅为示例。 认证:将 API 密钥放在 `Authorization: Bearer API_KEY` 请求头中。 **请求体** | 字段 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | `url` | string | 是 | 起始页面,例如文档站点的首页。 | | `limit` | integer | 否 | 最多读取的页面数,上限为 10,000。任务达到该数量时停止。 | | `max_depth` | integer | 否 | 距起始 URL 最多的链接步数。 | | `include_paths` | array of strings | 否 | 要保留的简单路径模式,例如 `/docs/*`。 | | `exclude_paths` | array of strings | 否 | 要跳过的简单路径模式,例如 `/blog/tag/*`。 | | `options` | object | 否 | 除 `url` 外的任意 `/read` 参数,应用于每个页面。 | *示例: the docs section of a site, 500 pages at most* ```json { "url": "https://docs.example.com/", "limit": 500, "max_depth": 3, "include_paths": [ "/docs/*" ], "exclude_paths": [ "/docs/archive/*" ], "options": { "format": "markdown" } } ``` **响应** `202 Accepted` ```json { "job_id": "job_8b27f41c0e" } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/crawl" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://docs.example.com/", "limit": 500, "include_paths": ["/docs/*"]}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/crawl", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"url": "https://docs.example.com/", "limit": 500, "include_paths": ["/docs/*"]}, timeout=30, ) print(resp.json()["job_id"]) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/crawl', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://docs.example.com/', limit: 500, include_paths: ['/docs/*'] }), }); console.log((await res.json()).job_id); ``` ## 获取任务状态和结果 `GET /api/v1/jobs/{job_id}` 返回任务状态以及已就绪的下一批结果。`results` 中的每一项要么是完整的 `/read` 响应,要么是 `{url, error}`,表示该页面无法读取。当出现 `next_cursor` 时,将其设为 `cursor` 再次调用;当它不存在时,表示暂无更多结果就绪。以下数值仅为示例。 认证:将 API 密钥放在 `Authorization: Bearer API_KEY` 请求头中。 **参数** | 名称 | 位置 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | --- | | `job_id` | path | string | 是 | 由 `/batch` 或 `/crawl` 返回的 ID。 | | `cursor` | query | string | 否 | 上一次调用返回的 `next_cursor` 值,用于获取后续结果。 | **响应** `200` ```json { "job_id": "job_8b27f41c0e", "status": "running", "results": [ { "url": "https://docs.example.com/docs/install", "final_url": "https://docs.example.com/docs/install", "status_code": 200, "rendered": false, "credits_used": 1, "title": "Install", "markdown": "# Install\n\nRun the installer...", "word_count": 418 }, { "url": "https://docs.example.com/docs/private", "error": { "code": "blocked_by_robots", "message": "robots.txt disallows this page for WebReaderAPI." } } ], "next_cursor": "c_000002", "credits_used": 1 } ``` *curl* ```bash curl -sG "https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -d cursor=c_000002 ``` *Python* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"cursor": "c_000002"}, timeout=30, ) job = resp.json() print(job["status"], len(job["results"]), job.get("next_cursor")) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e?cursor=c_000002', { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const job = await res.json(); console.log(job.status, job.results.length, job.next_cursor); ``` ## 如何等待任务完成? 轮询 `/jobs/{job_id}` 并保留 cursor。处理拿到的结果,然后将 `cursor` 设为 `next_cursor` 再次调用。当 `next_cursor` 不存在且 `status` 为 `done` 时,说明已获取全部结果;当它不存在且任务仍为 `running` 时,等待后用同一个 cursor 再次查询。 开始时间隔 2 秒轮询一次,在没有新结果到达时每次将等待时间翻倍,最多 30 秒。遵守站点 Crawl-delay 的整站抓取 (crawl) 可能需要较长时间,因此等待久一点是正常的,且不产生费用。 *Python:轮询任务并将每个页面保存为 .md 文件* ```python import os import pathlib import re import time import requests JOBS = "https://webreaderapi.com/api/v1/jobs" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def save_job(job_id, folder="pages"): out = pathlib.Path(folder) out.mkdir(exist_ok=True) cursor, wait, saved = None, 2, 0 while True: params = {"cursor": cursor} if cursor else {} job = requests.get(f"{JOBS}/{job_id}", headers=HEADERS, params=params, timeout=30).json() for item in job["results"]: if "error" in item: print("skipped", item["url"], item["error"]["code"]) continue name = re.sub(r"[^a-z0-9]+", "-", item["final_url"].lower()).strip("-")[:120] (out / f"{name}.md").write_text(item["markdown"], encoding="utf-8") saved += 1 if job.get("next_cursor"): cursor, wait = job["next_cursor"], 2 continue if job["status"] == "done": return saved time.sleep(wait) wait = min(wait * 2, 30) if __name__ == "__main__": print(save_job("job_8b27f41c0e"), "pages saved") ``` ## 整站抓取 (crawl) 会读取哪些页面? 整站抓取 (crawl) 从你的 URL 开始,按广度优先一次向外扩展一个链接步,最多到 `max_depth`。它还会读取站点的站点地图,地址来自 robots.txt 中给出的地址或 `/sitemap.xml`,以找到链接指向较少的页面。 - **仅限同一域名。** 指向其他域名的链接在你请求 `include_links` 时会列在结果中,但不会被读取。 - **路径过滤。** `include_paths` 和 `exclude_paths` 接受 `/blog/*` 之类的简单模式。 - **每页只读一份。** 当站点声明了 canonical URL 时,通过多个地址到达的同一页面只读取一次。 - **硬性停止。** 任务在读取 `limit` 个页面后结束。 ## 整站抓取 (crawl) 如何遵守站点规则? 每个请求都带有 User-Agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`,爬虫会遵循适用于 `WebReaderAPI` 的 robots.txt 规则;若没有为其命名的规则,则遵循用于所有爬虫的规则。被禁止的页面会被跳过,并以错误 `blocked_by_robots` 出现在 `results` 中;这些页面不计费。 当 robots.txt 设置了 `Crawl-delay` 时,爬虫在对该站点的两次请求之间会等待那么久。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 ## 整站抓取 (crawl) 的费用是多少? 每个读取的页面都按一次 `/read` 调用计费:1 积分,若页面需要浏览器则为 2 积分,使用 `country` 时再加 10 积分。被跳过和失败的页面免费。任务的 `credits_used` 会累计截至目前已计费的金额。 一个 500 页的文档站点在不使用浏览器的情况下读取约消耗 500 积分,10,000 个网页 套餐(US$3.75)可以覆盖很多次。由于 v1 中任务无法取消,`limit` 就是你的支出上限:把它设为你能承受付费的最大页面数。 ## 批处理与整站抓取:常见问题 ### 应该用 /batch 还是多次调用 /read? 当你已经拥有 URL 且不需要立即拿到每个结果时,用 `/batch`。它免去了你管理并发和重试的麻烦。当 agent 需要立即获取一个页面时,用 `/read`。 ### 任务结果会保留多久? 结果一就绪就尽快收集。结果会等待你获取;一旦交付,就不再保留页面内容的副本,所以请在你自己这边保存所需内容。 ### 整站抓取 (crawl) 会跟随指向其他网站的链接吗? 不会。一次整站抓取 (crawl) 只读取一个域名。其他域名会在你请求时作为链接出现,如果你希望读取这些 URL,可以把它们发给 `/batch`。 ### 可以停止已经开始的整站抓取 (crawl) 吗? v1 中不行。任务会在 `limit` 个页面时停止,所以请选择与预算相符的上限。已读取的页面仍会计费;从未读取的页面不产生费用。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 用 curl 和 jq 将网页转为 Markdown > 在终端中用 curl 和 jq 把网页转成 Markdown:保存页面、列出其链接、运行批处理并查看积分。从 US$0.07/千页 起步,无需 KYC。 - URL: https://webreaderapi.com/zh/docs/curl/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) API 能做的一切都能装进一行 shell 命令。这些示例用 curl 调用 API、用 jq 从 JSON 中取出字段,末尾附有适用于 Windows 的 PowerShell 版本。 **快速回答 — 如何从命令行将网页转为 Markdown?** 在 `Authorization: Bearer` 请求头中带上你的密钥运行 `curl -sG https://webreaderapi.com/api/v1/read --data-urlencode "url=…"`,然后将结果通过管道传给 `jq -r .markdown`。**WebReaderAPI** 会以 Markdown 返回页面的正文及其元数据。一个普通页面消耗 1 积分,截至 2026 年 10 月从 US$0.07/千页 起。无需 KYC;使用加密货币支付。 ## 如何设置终端? 安装 curl 和 jq(大多数 Linux 和 macOS 系统已自带),并在每个会话中导出一次你的密钥。下面的每个示例都从 `$WEBREADER_API_KEY` 读取密钥,因此密钥不会作为命令的一部分出现在你的 shell 历史记录中。 GET 请求请使用 `-G` 搭配 `--data-urlencode`:这样 curl 会替你编码页面地址,这一点很重要,因为地址本身含有 `?`、`&` 和 `=`。 *设置密钥并将一个页面保存为 .md 文件* ```bash export WEBREADER_API_KEY="your-key" curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/guides/compost" \ | jq -r '.markdown' > compost.md ``` ## 如何查看一次调用返回了什么、花费了多少? 用 jq 只取 metadata,而不是正文。`final_url` 显示重定向最终指向哪里,`rendered` 告诉你是否使用了浏览器,`credits_used` 是这次调用的费用。如果返回的是错误,同一个过滤器会打印 `null` 字段;打印 `.error` 可读取错误码和消息。 *只打印 metadata,若出错则打印错误* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/guides/compost" \ | jq '.error // {title, final_url, rendered, credits_used, word_count}' ``` ## 如何列出页面上的链接? 加上 `include_links=true`,把 `links` 列表转换为制表符分隔的行。这样你就能快速得到页面外链的概览,可以排序、用 grep 过滤,或交给批处理任务。 *链接以文本和 URL 输出,每行一个* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/docs/" \ -d include_links=true \ | jq -r '.links[] | "\(.text)\t\(.url)"' | sort -u ``` ## 如何读取 JavaScript 页面或 PDF? 对于用 JavaScript 构建内容的页面,加上 `-d render=true`;此时消耗 2 积分。PDF 不需要特殊处理:发送其 URL,文本就会在 `markdown` 中返回。最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。 *先渲染页面,再读 PDF* ```bash curl -sG "https://webreaderapi.com/api/v1/read" -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/app/changelog" -d render=true \ | jq -r '.markdown' > changelog.md curl -sG "https://webreaderapi.com/api/v1/read" -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/files/annual-report.pdf" \ | jq -r '.markdown' > annual-report.md ``` ## 如何从 shell 运行批处理任务? 向 `/batch` 发送包含 URL 的 JSON 请求体,保存 `job_id`,然后读取任务。一个小循环会等到任务变为 `done`,并打印每个页面的标题或错误码。对于耗时较长的任务,按 [批处理和整站抓取 (crawl) 页面](https://webreaderapi.com/zh/docs/crawl/) 所示的方式跟踪 `next_cursor`。 *三个 URL 的批处理,然后等待结果* ```bash JOB=$(curl -s "https://webreaderapi.com/api/v1/batch" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"urls": ["https://example.com/a", "https://example.com/b", "https://example.com/c"]}' \ | jq -r '.job_id') until [ "$(curl -s "https://webreaderapi.com/api/v1/jobs/$JOB" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq -r '.status')" = "done" ]; do sleep 5 done curl -s "https://webreaderapi.com/api/v1/jobs/$JOB" -H "Authorization: Bearer $WEBREADER_API_KEY" \ | jq -r '.results[] | "\(.url)\t\(.title // .error.code)"' ``` ## 如何查看我的积分? 调用 `/credits`;此调用免费。它会返回 `credits_remaining`、`credits_used_today` 和你的 `concurrency_limit`。预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。 *剩余积分* ```bash curl -s "https://webreaderapi.com/api/v1/credits" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq '.credits_remaining' ``` ## Windows 上的 PowerShell 版本是怎样的? `Invoke-RestMethod` 会替你解析 JSON,因此不需要 jq。用 `[uri]::EscapeDataString` 构建查询以编码页面地址,并在 headers 表中传入密钥。 *PowerShell:保存一个页面* ```powershell $headers = @{ Authorization = "Bearer $env:WEBREADER_API_KEY" } $target = [uri]::EscapeDataString('https://example.com/guides/compost') $page = Invoke-RestMethod -Uri "https://webreaderapi.com/api/v1/read?url=$target" -Headers $headers $page.markdown | Out-File -Encoding utf8 compost.md "$($page.title): $($page.word_count) words, $($page.credits_used) credit(s)" ``` ## curl:常见问题 ### 为什么我的 URL 中含有 & 时会失败? 因为 shell 或 curl 把它拆开了。将整个 `url=…` 参数用引号括起来,并用 `--data-urlencode` 传入,如上面的示例所示;这样 curl 就会编码页面地址中的 `&`、`?` 和 `=`。 ### 如何查看错误的 HTTP 状态? 加上 `-w '\n%{http_code}\n'` 可在正文之后打印它,或加上 `-i` 查看所有 headers。正文中的 `error.code` 是脚本中用于判断的稳定值。 ### 失败的调用会计费吗? 不会。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 错误、robots.txt 拒绝和重试 > 所有 WebReaderAPI 错误码:robots.txt 拒绝、站点拒绝、超时和积分错误,哪些应重试,以及为什么这些错误从不计费。 - URL: https://webreaderapi.com/zh/docs/errors/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 每个错误都有 HTTP 状态码、稳定的 `code` 和可读的 `message`。它们都不会消耗积分。有些值得重试;来自站点的拒绝是最终结果,我们绝不会绕过它们。 **快速回答 — WebReaderAPI 错误码是什么意思,哪些应该重试?** **WebReaderAPI** 错误分为三组,且都不会计费。请求问题(`invalid_url`、`invalid_api_key`、`insufficient_credits`)需要你在自己这边修复。站点决定(`blocked_by_robots`、`blocked_by_site_policy`、`target_refused`)是最终结果。临时故障(`fetch_failed`、`fetch_timeout`、`concurrency_limit`)可以用退避策略重试。积分起步于 US$0.07/千页,使用加密货币支付,无需 KYC。 ## API 可以返回哪些错误码? 响应体始终是 `{"error": {"code", "message"}}`,如果拒绝来自站点,还会包含 `target_status`。 | HTTP | `code` | 原因 | 重试? | | --- | --- | --- | --- | | 400 | `invalid_url` | 不是 http 或 https、网址过长,或是私有、本地或云元数据地址 | 不重试:修正 URL | | 400 | `invalid_parameter` | 某个参数的值超出了其可选列表或范围 | 不重试:修正请求 | | 401 | `invalid_api_key` | 密钥缺失、错误或已被撤销 | 不重试:检查 API 密钥 | | 402 | `insufficient_credits` | 你的余额已无可用积分 | 购买积分包后可重试 | | 403 | `blocked_by_robots` | 该站点的 robots.txt 禁止 WebReaderAPI 或所有机器人访问该页面 | 不重试:最终结果 | | 403 | `blocked_by_site_policy` | 站点声明了 `Content-Signal: ai-input=no` | 不重试:最终结果 | | 422 | `unsupported_content` | 我们不读取的类型(视频、压缩包)或文件过大 | 否 | | 429 | `concurrency_limit` | 同一时间运行的请求过多 | 可以,退避后重试 | | 502 | `target_refused` | 站点拒绝:403、429、验证挑战页或登录墙;其状态码在 `target_status` 中 | 不重试:最终结果 | | 502 | `fetch_failed` | DNS、TLS 或连接错误,或站点返回 404 或 410 | 重试一两次,并退避 | | 504 | `fetch_timeout` | 站点在 `timeout` 内未响应 | 可以,退避后重试或延长超时 | ## 为什么 robots.txt 和站点拒绝属于最终结果? 因为这是站点所有者的决定,而 WebReaderAPI 的设计就是遵循它。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。 当站点以其他方式拒绝请求,例如 403、429、验证挑战页或登录表单时,你会得到 `target_refused`,并在 `target_status` 中看到站点自己的状态码。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。一分钟后重试同一 URL 通常得到相同结果,因此请把这些状态码当作结果而非失败:记录后继续。 ## 如何排查页面为什么被拒绝? 打开站点的 `/robots.txt`,查找指名 `WebReaderAPI` 的分组,或适用于所有机器人的 `*` 分组。匹配该路径的 `Disallow` 行可解释 `blocked_by_robots`。诸如 `Content-Signal: ai-input=no` 的行则可解释 `blocked_by_site_policy`。 我们会保留每份 robots.txt 的副本,最长 24 小时。如果站点刚刚向机器人开放某个版块,变更最多需要一天才能生效。站点所有者可在[我们的爬虫页面](https://webreaderapi.com/zh/bot/)上了解我们爬虫的行为方式,以及如何允许或屏蔽它。 ## 临时性失败应如何重试? 只重试 `concurrency_limit`、`fetch_timeout`,以及重试一两次 `fetch_failed`。每次重试前先等待,并让等待时间每次翻倍,再加一点随机抖动,避免并行 worker 同时重试。重试 4 或 5 次后停止。 对于 `concurrency_limit`,更好的办法是减少同时发送的请求数:每个账户都有同时读取页面数的上限;你的控制台会显示该上限,支持团队可将其提高。对于 `fetch_timeout`,在重试慢站点前将 `timeout` 提高到最多 60 秒。重试不产生费用,因为失败的尝试不计费。 *Python:只重试那些可能变化的错误* ```python import os import random import time import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} RETRY = {"concurrency_limit", "fetch_timeout", "fetch_failed"} FINAL = {"blocked_by_robots", "blocked_by_site_policy", "target_refused", "unsupported_content"} def read_page(url, attempts=5, **options): wait = 1.0 for attempt in range(1, attempts + 1): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) if resp.status_code == 200: return resp.json() error = resp.json().get("error", {}) code = error.get("code", "unknown") if code in FINAL: return {"url": url, "skipped": code, "target_status": error.get("target_status")} if code not in RETRY or attempt == attempts or (code == "fetch_failed" and attempt >= 3): raise RuntimeError(f"{code}: {error.get('message')}") time.sleep(wait + random.uniform(0, wait / 2)) wait = min(wait * 2, 30) raise RuntimeError("unreachable") if __name__ == "__main__": print(read_page("https://example.com/blog/first-post", max_chars=20000).get("title")) ``` *Node.js:同样的规则,配合指数退避* ```javascript const RETRY = new Set(['concurrency_limit', 'fetch_timeout', 'fetch_failed']); const FINAL = new Set(['blocked_by_robots', 'blocked_by_site_policy', 'target_refused', 'unsupported_content']); const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); export async function readPage(url, options = {}, attempts = 5) { let wait = 1000; for (let attempt = 1; attempt <= attempts; attempt++) { const params = new URLSearchParams({ url, ...options }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const body = await res.json(); if (res.ok) return body; const code = body.error?.code ?? 'unknown'; if (FINAL.has(code)) return { url, skipped: code, target_status: body.error.target_status }; if (!RETRY.has(code) || attempt === attempts) throw new Error(`${code}: ${body.error?.message}`); await sleep(wait + Math.random() * (wait / 2)); wait = Math.min(wait * 2, 30000); } } ``` ## 批量或整站抓取 (crawl) 中的错误怎么办? 单个页面失败不会让整个任务停止。该页面会以 `{url, error}` 的形式出现在 `results` 中,并带有与上面相同的错误代码,且不产生任何费用。在一次整站抓取 (crawl) 中,如果某个分区遇到 `blocked_by_robots`,它会直接读取网站的其余部分。 任务结束时,统计错误代码。同一网站上出现大量 `target_refused`,说明该网站不接受自动化读取;出现大量 `fetch_timeout`,说明网站较慢,在任务选项中设置更长的 `timeout` 可能会有帮助。 ## 错误:常见问题 ### 被 robots.txt 阻止的页面会收费吗? 不会。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。本页上的其他所有错误同样如此。 ### 如果我要求,你们能读取阻止你们爬虫的页面吗? 不能。我们尊重网站所有者的选择,且该政策对所有客户一致。如果你拥有该网站,请在 robots.txt 中为 `WebReaderAPI` 添加一条规则;[爬虫页面](https://webreaderapi.com/zh/bot/)说明了具体做法。 ### 为什么一个存在的页面会返回 fetch_failed? 网站可能当时宕机、接受 TLS 连接缓慢,或对自动化客户端返回 404。请用退避策略重试一两次。如果持续失败,请在浏览器中检查该地址。 ### 在被拒绝后,我的 agent 应该告诉用户什么? 简单说明即可,例如该网站不允许对该页面进行自动化读取。然后让模型使用其他来源。对大多数模型来说,把错误代码作为工具结果返回就足够了。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # LangChain 与 LlamaIndex:网页加载器和 read_url 工具 > LangChain 与 LlamaIndex 网页加载器:一个 read_url 工具、一个文档加载器,以及一个由整站抓取 (crawl) 构建的小型 RAG 索引,全部用 Python 实现。无需 KYC,可用加密货币支付。 - URL: https://webreaderapi.com/zh/docs/langchain/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 在 Python AI 技术栈中使用该 API 有两种方式:将页面加载为文档以供检索,或为 agent 提供一个 `read_url` 工具。同样的 20 行衔接代码可同时用于 LangChain 和 LlamaIndex。 **快速回答 — 如何将网页以干净的 Markdown 加载到 LangChain 或 LlamaIndex?** 调用 **WebReaderAPI** 的 `/read` 端点,并将每个响应包装为 `Document`:Markdown 作为 content,`final_url` 和标题作为 metadata。对于 agent,将同一调用暴露为 `read_url` 工具。每个页面 1 积分,使用浏览器则为 2 积分,自 2026 年 10 月起US$0.07/千页。无需使用我们的任何软件包。无需 KYC;可用加密货币支付。 ## 为什么使用 Markdown 文档而不是原始 HTML? 因为检索作用于文本,而 Markdown 保留了重要的结构,同时丢弃其余部分。标题会保留下来,因此拆分器可以按主题变化进行切分。列表和表格会保留下来,因此步骤和规格保持在一起。导航、cookie 横幅和广告会被去除,因此它们不会污染你的 embeddings,也不会浪费 tokens。 metadata 来自同一次调用:`final_url` 作为引用来源,以及用于过滤的 `title`、`published_at` 和 `language`。 *reader.py:共享辅助代码(请将其保存在代码旁边)* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} class PageError(Exception): pass def read_page(url, **options): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) body = resp.json() if resp.status_code != 200: raise PageError(body["error"]["code"]) return body ``` ## 如何构建 LangChain 文档加载器? 将每个页面转换为 `langchain_core.documents.Document`,然后使用 `langchain-text-splitters` 包中的 `MarkdownHeaderTextSplitter` 按标题进行切分。每个分块都在其 metadata 中保留标题路径,并添加来源 URL,以便每个答案都能指回其页面。 被跳过的页面(例如被 robots.txt 拒绝的页面)会抛出带有代码的 `PageError`;请记录这些错误并继续。 *LangChain:加载并切分页面* ```python from langchain_core.documents import Document from langchain_text_splitters import MarkdownHeaderTextSplitter from reader import PageError, read_page splitter = MarkdownHeaderTextSplitter(headers_to_split_on=[("#", "h1"), ("##", "h2"), ("###", "h3")]) def load_pages(urls): chunks = [] for url in urls: try: page = read_page(url) except PageError as exc: print("skipped", url, exc) continue for part in splitter.split_text(page["markdown"]): part.metadata.update({"source": page["final_url"], "title": page.get("title", "")}) chunks.append(part) return chunks docs = load_pages(["https://example.com/docs/install", "https://example.com/docs/configure"]) print(len(docs), "chunks", isinstance(docs[0], Document) if docs else "") ``` ## 如何为 LangChain agent 提供 read_url 工具? 用 `langchain_core.tools` 中的 `@tool` 装饰一个函数。docstring 会成为模型读取的工具描述,因此请说明该工具返回什么以及何时使用它。返回纯文本:一行标题、来源和 Markdown,并用 `max_chars` 截断以适配你的模型。 将该工具绑定到任何支持 tool calling 的聊天模型,或将其传递给 agent 构造函数。然后模型会用对话中或搜索结果中的 URL 调用 `read_url`。 *LangChain:read_url 工具* ```python import os from langchain.chat_models import init_chat_model from langchain_core.tools import tool from reader import PageError, read_page @tool def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown, with its title and source URL.""" try: page = read_page(url, max_chars=max_chars) except PageError as exc: return "Could not read the page: " + str(exc) return "# " + (page.get("title") or url) + "\nSource: " + page["final_url"] + "\n\n" + page["markdown"] model = init_chat_model(os.environ.get("CHAT_MODEL", "openai:gpt-4.1-mini")).bind_tools([read_url]) reply = model.invoke("Summarise https://example.com/blog/first-post in three bullet points.") print(reply.tool_calls) ``` ## 如何在 LlamaIndex 中做同样的事? LlamaIndex 使用自己的 `Document` 类,配合 `text` 和 `metadata`,以及 `FunctionTool.from_defaults` 将函数转换为工具。辅助代码保持不变。使用 `VectorStoreIndex.from_documents` 从文档构建索引,它会使用你的 LlamaIndex 设置中指定的任何 embedding model。 *LlamaIndex:为一次整站抓取 (crawl) 建索引,以及一个 read_url 工具* ```python import os import time import requests from llama_index.core import Document, VectorStoreIndex from llama_index.core.tools import FunctionTool from reader import HEADERS, PageError, read_page def crawl_pages(start_url, limit=200): job = requests.post("https://webreaderapi.com/api/v1/crawl", headers=HEADERS, json={"url": start_url, "limit": limit}, timeout=30).json() pages, cursor = [], None while True: params = {"cursor": cursor} if cursor else {} res = requests.get("https://webreaderapi.com/api/v1/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=30).json() pages += [r for r in res["results"] if "error" not in r] cursor = res.get("next_cursor") if not cursor and res["status"] == "done": return pages if not cursor: time.sleep(5) pages = crawl_pages("https://docs.example.com/") docs = [Document(text=p["markdown"], metadata={"source": p["final_url"], "title": p.get("title", "")}) for p in pages] index = VectorStoreIndex.from_documents(docs) print(index.as_query_engine().query("How do I install the product?")) def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown.""" try: return read_page(url, max_chars=max_chars)["markdown"] except PageError as exc: return "Could not read the page: " + str(exc) read_tool = FunctionTool.from_defaults(fn=read_url, name="read_url") print(os.environ.get("CHAT_MODEL", "set CHAT_MODEL for your agent"), read_tool.metadata.name) ``` ## 小型 RAG 索引需要多大范围的整站抓取 (crawl)? 比你想的少。一个产品的文档通常只有几百页,而将 `include_paths` 设置为文档分区的整站抓取 (crawl) 只会读取这些页面。按每页 1 积分计算,一个 300 页的文档网站约需 300 积分;10,000 个网页(US$3.75)可以多次刷新它。 按与来源变化频率相匹配的计划重新整站抓取 (crawl),并将 `final_url` 和 `word_count` 与上一次运行进行比较,仅对发生变化的页面重新生成 embedding。预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。 ## LangChain 与 LlamaIndex:常见问题 ### 是否有适用于 LangChain 或 LlamaIndex 的 WebReaderAPI 软件包? 没有。本页上的辅助代码和工具就是全部集成内容,因此你可以自由调整它们。WebReaderAPI 是一个普通的 HTTPS API,任何 Python HTTP 客户端都可以调用。 ### 这需要哪个 LangChain 版本? 任何包含 `langchain_core`、`langchain-text-splitters` 和 `init_chat_model` 的近期版本均可。工具装饰器和 `Document` 类在近期版本中一直保持稳定。 ### 如何避免重新读取未发生变化的页面? 保存 `final_url`、`word_count` 以及每次读取的日期。按计划重新读取,仅当页面的单词数或内容哈希发生变化时才重新生成该页面的 embedding。每次重新读取都会消耗一个积分,因此请选择与来源相匹配的节奏。 ### 如果某些页面被拒绝怎么办? 它们会抛出带有代码(例如 `blocked_by_robots`)的 `PageError`,且不产生任何费用。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 面向 Claude、Cursor 及其他 MCP 客户端的网页读取 MCP server > 面向 Claude Desktop、Cursor 及其他 MCP 客户端的网页读取 MCP server:一个 40 行的 Python read_url 工具,返回干净的 Markdown。无需 KYC,使用加密货币支付。 - URL: https://webreaderapi.com/zh/docs/mcp/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 为任意 MCP 客户端提供一个 `read_url` 工具,把链接转成干净的 Markdown。该 server 是一个简短的 Python 文件,在你自己的机器上运行;你的 API 密钥保存在它的环境中。 **快速回答 — 如何通过 MCP 为 Claude Desktop 或 Cursor 添加网页读取工具?** 运行一个小型 MCP server,暴露一个调用 **WebReaderAPI** 的 `read_url` 工具,然后在客户端的 MCP 设置中注册它,并把密钥放在 `env` 中。之后模型就能把任意公开网页读取为干净的 Markdown。每次网页读取消耗 1 积分,使用浏览器时为 2 积分,截至 2026 年 10 月,起步价为 US$0.07/千页。无需 KYC;使用加密货币支付。 ## MCP server 概览 | 属性 | 值 | | --- | --- | | 语言 | Python 3.10+,使用 `mcp` 和 `httpx` 包 | | 传输方式 | stdio:客户端以本地进程方式启动该 server | | 工具 | `read_url(url, max_chars)` → 标题、来源 URL,然后是页面的 Markdown | | 为什么不用 web_fetch | Claude Code 和 OpenClaw 已内置一个同名工具 | | 密钥 | 在 server 的环境变量中从 `WEBREADER_API_KEY` 读取 | | 计费 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | ## 为什么用 read_url 工具而不是 web_fetch? 因为两个同名工具会让客户端和模型都混淆。Claude Code 和 OpenClaw 已内置一个名为 `web_fetch` 的工具。一个不同的名字 `read_url` 和清晰的描述,能让模型在需要网页正文(包括 JavaScript 页面和 PDF)时选择我们的工具。 该工具返回文本,而不是 JSON。模型处理简短的头部和 Markdown 比处理嵌套字段更好,而且头部会让来源 URL 始终可见,以便答案引用。 *webreader_mcp.py* ```python import os import httpx from mcp.server.fastmcp import FastMCP API = "https://webreaderapi.com/api/v1/read" KEY = os.environ["WEBREADER_API_KEY"] mcp = FastMCP("webreaderapi") @mcp.tool() def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown. Use it when the user gives a link or when a page must be read to answer. max_chars caps the length of the returned text (1,000 to 500,000). """ params = {"url": url, "max_chars": max(1000, min(int(max_chars), 500000))} try: resp = httpx.get(API, params=params, headers={"Authorization": "Bearer " + KEY}, timeout=75) except httpx.HTTPError as exc: return "Network error while reading the page: " + str(exc) body = resp.json() if resp.status_code != 200: err = body.get("error", {}) return "Could not read the page: " + err.get("code", str(resp.status_code)) + ". " + err.get("message", "") title = body.get("title") or url return "# " + title + "\nSource: " + body.get("final_url", url) + "\n\n" + body.get("markdown", "") if __name__ == "__main__": mcp.run() ``` ## 如何安装和测试该 server? 创建一个虚拟环境,安装 `mcp` 和 `httpx`,并保存上面的文件。`mcp` 包是 Model Context Protocol 的官方 Python SDK;`FastMCP` 会把带类型标注的 Python 函数转成工具,并以 docstring 作为其描述。 在接入客户端之前,先在终端中设置好密钥并运行一次该文件。它会静默地在 stdin 上等待客户端,这意味着它已正确启动;按 Ctrl+C 停止它。 *安装* ```bash python -m venv .venv . .venv/bin/activate pip install "mcp[cli]" httpx WEBREADER_API_KEY="your-key" python webreader_mcp.py ``` ## 如何在 Claude Desktop 中注册? 打开 Claude Desktop 的开发者设置,编辑 `claude_desktop_config.json`,并在 `mcpServers` 下添加一个条目。使用绝对路径:虚拟环境中的 Python 和 server 文件。把密钥放在 `env` 中,这样它永远不会出现在工具参数或对话里。重启 Claude Desktop,`read_url` 就会出现在工具列表中。 Cursor 从它自己的 MCP 配置文件中读取相同的 `mcpServers` 结构,Claude Code 可以用它的 `claude mcp add` 命令注册同一条命令。关于 OpenClaw,请参阅 [OpenClaw 页面](https://webreaderapi.com/zh/docs/openclaw/)。 *claude_desktop_config.json* ```json { "mcpServers": { "webreaderapi": { "command": "/home/you/webreader/.venv/bin/python", "args": ["/home/you/webreader/webreader_mcp.py"], "env": { "WEBREADER_API_KEY": "your-key" } } } } ``` ## 如何让页面保持在模型的上下文中? 降低 `max_chars`。默认的 20,000 字符对大多数文章来说足够了,并能防止长页面占满上下文。模型在一个回答中读取多个页面时,每页 8,000 到 12,000 字符效果更好。 让模型只读取它需要的页面,而不是它看到的每一个链接。在项目说明中加入一句简短的话,例如“每个问题最多读取三个页面”,就能同时控制成本和上下文。 ## 当站点拒绝读取时会发生什么? 工具会返回一条带有错误代码的简短消息,例如 `blocked_by_robots` 或 `target_refused`,并且不会计费。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。然后模型可以说该页面无法供自动化读取器使用,并改用其他来源。 ## MCP server:常见问题 ### WebReaderAPI 有官方 MCP 包吗? 没有。本页面上的文件就是集成:40 行代码,你可以自己阅读、修改和运行。无需从我们这里安装任何东西,你的密钥除了在调用我们的 API 时,永远不会离开你的机器。 ### 模型能用这个 server 搜索网页吗? 不能。`read_url` 读取的是你或模型已经拥有地址的页面。将其与你客户端提供的任意搜索工具配合使用;模型先搜索,然后读取重要的页面。 ### 用这个运行一个助手需要多少费用? 每次网页读取消耗 1 积分,需要浏览器时为 2 积分。一个每天读取 50 个页面的助手每月大约消耗 1,500 积分,而 10,000 个网页(US$3.75)大约能覆盖六个月。 ### 该 server 能离线工作吗? 不能。它每次读取页面都会调用 `https://webreaderapi.com/api/v1/read`,因此需要互联网访问和有效的密钥。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 用 WebReaderAPI 在 n8n AI agent 中读取网页 > 在 n8n AI agent 中读取网页:把任意 URL 变成干净 Markdown 的 HTTP Request 工具设置,以及一个定时工作流。无需 KYC,用加密货币支付。 - URL: https://webreaderapi.com/zh/docs/n8n/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) n8n 的 HTTP Request 节点可以作为其 AI Agent 节点的工具使用。把它指向 `/read`,让模型填入 URL,agent 就能以干净 Markdown 读取任意公开网页,无需安装社区节点。 **快速回答 — 如何让 n8n AI agent 读取网页?** 把 HTTP Request 节点作为工具挂到 n8n 的 AI Agent 上,设置为 `GET https://webreaderapi.com/api/v1/read`,并使用持有你 **WebReaderAPI** 密钥的 Header Auth 凭证,让模型定义 `url` 参数。开启 Optimize Response,只保留 `title`、`final_url` 和 `markdown`。每个页面消耗 1 积分,截至 2026 年 10 月,价格从 US$0.07/千页 起。无需 KYC;用加密货币支付。 ## 我用哪些 HTTP Request 设置? 选项名称遵循 n8n 的 HTTP Request 节点文档,查阅于 2026-10-22。 | 设置 | 值 | | --- | --- | | 位置 | 作为工具挂到 **AI Agent** 节点上 | | Method | `GET` | | URL | `https://webreaderapi.com/api/v1/read` | | 身份验证 | Generic credentials → **Header Auth** | | Header Auth 凭证 | Name 填 `Authorization`,Value 填 `Bearer ` 后接你的 API 密钥 | | Send Query Parameters | 开启,**Using Fields Below** | | 参数 `url` | 由模型定义(见下文) | | 参数 `max_chars` | 固定值,例如 `15000` | | Optimize Response | 开启 · 响应类型 **JSON** · Include Fields 选 **Selected**:`title`、`final_url`、`markdown` | ## 为什么用 HTTP Request 节点作为工具? 因为它已经满足这个 API 所需的一切:一个 GET 请求、一个 header 和两个 query 参数。n8n 文档说明 HTTP Request 节点既可作普通节点运行,也可作为工具挂到 AI agent 上,且部分选项只在工具形式中存在。 我们这边没有任何东西需要安装或更新,密钥存放在 n8n 的凭证库中,而不是工作流里。给 n8n 单独一把密钥,这样它的用量能与其他脚本区分开,也能单独吊销。创建多个 API 密钥,例如每个 agent 或项目一个,并可从控制台撤销其中任意一个。 ## 模型如何选择要读取的 URL? 让模型定义 `url` 参数。n8n 会在符合条件的参数字段旁显示一个按钮,把值交给模型,你也可以用 n8n 的 `$fromAI()` 函数自己写表达式。它接受一个 key、一段 description、一个 type 和一个可选的 default,例如 key 为 `url`、description 为 "The http or https address of the page to read"、type 为 `string`。 n8n 文档说明 `$fromAI()` 只在连接到 AI Agent 节点的工具中有效。工具描述也用平实的语言写,例如 "Reads a public web page and returns its main content as Markdown",这样 agent 就知道何时调用它。 ## 为什么开启 Optimize Response? 因为工具返回的一切都会进入模型的上下文。Optimize Response 是仅限工具的选项,用于减少传给模型的数据。选择 JSON 响应类型时,你可以只包含选中的字段;保留 `title`、`final_url` 和 `markdown`,去掉其余部分。 在我们这边用 `max_chars` 限制长度,它会在 Markdown 离开 API 前截断。该节点的 HTML 和 Text 响应类型有自己的 Truncate Response 选项,但对于我们的 JSON 返回,`max_chars` 是更简单的控制方式。 ## 如何在定时工作流中使用 API? 在 Schedule Trigger 后面把 HTTP Request 节点当普通节点用,而不是工具。给它一个固定的 `url`,例如你关注的更新日志或定价页,并把 `markdown` 字段传给下一个节点:文件、数据库、聊天消息,或与上一次运行做比较。 每次运行按每个 URL 读取一个页面。每天监控 20 个页面,对于不需要浏览器的页面每月约消耗 600 积分,因此 10,000 个网页(US$3.75)能用一年多。预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。 ## 当站点拒绝读取时会发生什么? 节点收到带 `blocked_by_robots` 或 `target_refused` 之类代码的错误响应,且不计费。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。在 agent 中,让工具返回错误,以便模型解释它或尝试其他来源;在定时工作流中,把错误路由到记录它们的分支。[错误页面](https://webreaderapi.com/zh/docs/errors/)列出了所有代码。 ## 我能在构建工作流之前先试用这个调用吗? 在终端用 curl 运行同样的调用,如 [curl 配方](https://webreaderapi.com/zh/docs/curl/) 所示。如果在终端能用而在 n8n 中失败,原因就在节点设置里,最常见的是凭证值缺少 `Bearer ` 前缀,或 `url` 参数留空。 ## n8n:常见问题 ### WebReaderAPI 需要社区节点吗? 不需要。内置的 HTTP Request 节点就够了,可作为 AI Agent 的工具,也可作为任意工作流中的普通节点。 ### agent 能读取 JavaScript 页面或 PDF 吗? 需要。API 会自行判断何时需要浏览器(`render=auto`),并将 PDF 作为文本读取。渲染页面消耗 2 积分;最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。 ### 如何阻止 agent 读取过多页面? 在 agent 的 system message 中说明它可读取的页面数量,并将 `max_chars` 保持适中。每次读取都是一次工具调用,因此你对 agent 工具调用设置的限制也会同时限制页面数量。 ### 如何支付积分? 在 BTC, USDT, USDC, ETH, SOL, LTC 的 US$25 中充值,然后购买 pack。WebReaderAPI 不要求 ID、自拍或公司文件。 ## 来源 1. [HTTP Request 节点](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) — n8n docs (read 2026-10-22) 2. [HTTP Request 凭据](https://docs.n8n.io/integrations/builtin/credentials/httprequest/) — n8n docs (read 2026-10-22) 3. [AI Agent 节点](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/) — n8n docs (read 2026-10-22) 4. [让 AI 用 $fromAI() 指定工具参数](https://docs.n8n.io/advanced-ai/examples/using-the-fromai-function/) — n8n docs (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # Node.js 网页转 Markdown > 在 Node.js 中用原生 fetch 把网页转成 Markdown:单页、一个小型并发池和一个整站抓取 (crawl) 轮询循环。低至 US$0.07/千页,无需 KYC,加密货币支付。 - URL: https://webreaderapi.com/zh/docs/node/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) Node.js 18 及更高版本自带 `fetch`,因此你完全不需要任何依赖。三种方案:读取一个页面、用小型并发池读取列表,以及跟踪 crawl 任务直到完成。 **快速回答 — 如何在 Node.js 中将网页转换为 Markdown?** 使用 Node.js 18+ 内置的 `fetch`:在 `Authorization` header 中带上你的密钥调用 `https://webreaderapi.com/api/v1/read?url=…`,并从 JSON 响应中读取 `markdown`。**WebReaderAPI** 返回页面的正文,以及标题、作者和日期。单个页面消耗 1 积分,使用浏览器则消耗 2 积分,价格自 2026 年 10 月起为 US$0.07/千页。无需 KYC;加密货币支付。 ## 我需要什么? Node.js 18 或更高版本,以使用全局 `fetch`,并在 `WEBREADER_API_KEY` 环境变量中设置 API 密钥。示例为 ES modules:保存时使用 `.mjs` 扩展名,或在 `package.json` 中设置 `"type": "module"`,这样顶层的 `await` 才能正常工作。 JSDoc 注释描述了响应结构,因此 VS Code 等编辑器无需 TypeScript 构建步骤就能提供补全。 *read.mjs:单个页面* ```javascript /** * @typedef {Object} Page * @property {string} url * @property {string} final_url * @property {number} status_code * @property {boolean} rendered * @property {number} credits_used * @property {string} [title] * @property {string} [author] * @property {string} [published_at] * @property {string} [language] * @property {string} [markdown] * @property {number} word_count */ /** @returns {Promise} */ export async function readPage(url, options = {}) { const params = new URLSearchParams({ url, ...options }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, signal: AbortSignal.timeout(75_000), }); const body = await res.json(); if (!res.ok) throw Object.assign(new Error(body.error.message), { code: body.error.code }); return body; } const page = await readPage('https://example.com/docs/getting-started', { max_chars: '20000' }); console.log(page.title, page.word_count, 'words,', page.credits_used, 'credit(s)'); ``` ## 如何读取 URL 列表而不触及限制? 运行固定数量的 worker,从共享队列中取出 URL。这比对整个列表使用 `Promise.all` 更简单,后者会同时发起所有请求并触及 `429 concurrency_limit`。每个账户都有同时读取页面数的上限;你的控制台会显示该上限,支持团队可将其提高。 下面的并发池会把错误与结果放在一起,因此一个被拒绝的页面不会中断整个运行。诸如 `blocked_by_robots` 这类拒绝是最终且免费的;记录下来然后继续。 *pool.mjs:URL 列表,每次 8 个* ```javascript import { readPage } from './read.mjs'; export async function readAll(urls, workers = 8) { const queue = [...urls]; const results = []; async function worker() { while (queue.length) { const url = queue.shift(); try { const page = await readPage(url, { max_chars: '50000' }); results.push({ url, page }); } catch (err) { results.push({ url, error: err.code ?? err.name }); } } } await Promise.all(Array.from({ length: workers }, worker)); return results; } const urls = Array.from({ length: 30 }, (_, i) => `https://example.com/blog/post-${i + 1}`); for (const r of await readAll(urls)) console.log(r.url, '->', r.error ?? r.page.title); ``` ## 如何在 Node.js 中跟踪 crawl 任务? 用 `POST https://webreaderapi.com/api/v1/crawl` 启动任务,然后在循环中读取 `https://webreaderapi.com/api/v1/jobs/{job_id}`。每当 `next_cursor` 返回时传入 `cursor`;当没有 cursor 且状态为 `done` 时,任务已完成。在空轮询之间等待,并将等待时间翻倍直至 30 秒,因为尊重网站 Crawl-delay 的 crawl 可能很慢。 [batch 与 crawl 页面](https://webreaderapi.com/zh/docs/crawl/) 描述了 crawl 如何选择页面,以及 `limit` 如何限制其读取内容。 *crawl.mjs:启动 crawl 并收集每个页面* ```javascript const headers = { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json', }; const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); const start = await fetch('https://webreaderapi.com/api/v1/crawl', { method: 'POST', headers, body: JSON.stringify({ url: 'https://docs.example.com/', limit: 300, include_paths: ['/docs/*'] }), }); const { job_id } = await start.json(); const pages = []; let cursor = ''; let wait = 2000; for (;;) { const url = `https://webreaderapi.com/api/v1/jobs/${job_id}${cursor ? `?cursor=${encodeURIComponent(cursor)}` : ''}`; const job = await (await fetch(url, { headers })).json(); pages.push(...job.results.filter((r) => !r.error)); if (job.next_cursor) { cursor = job.next_cursor; wait = 2000; continue; } if (job.status === 'done') break; await sleep(wait); wait = Math.min(wait * 2, 30000); } console.log(pages.length, 'pages read, job', job_id); ``` ## 如何将结果传给模型? 发送 Markdown,而不是整个 JSON。模型应读取的是 `markdown` 字段;元数据最好留作引用。在其前面加上标题和 `final_url`,以便模型能标明来源,并将 `max_chars` 保持在模型上下文能容纳的大小,例如每页 20,000 个字符。 [OpenAI function-calling 页面](https://webreaderapi.com/zh/docs/openai/) 演示了 Python 中的完整工具循环;上面的同一个 `readPage` 函数可以作为 Node.js agent 中的工具主体。 ## Node.js:常见问题 ### 这在 Deno、Bun 或浏览器中能用吗? Deno 和 Bun 支持相同的 `fetch` 和 ES modules。不要从浏览器页面调用 API:密钥会暴露给每个访客。请从你的服务器调用。 ### 有 npm 包吗? 没有。本页面的函数就是完整的集成。WebReaderAPI 就是普通的 HTTPS 和 JSON,因此你可以掌控重试、超时和日志记录。 ### 如何处理 429 concurrency_limit? 减少 worker 数量,或短暂等待后重试,且每次将等待时间翻倍。429 不消耗任何费用,[错误页面](https://webreaderapi.com/zh/docs/errors/) 提供了现成的退避函数。 ### 读取 10,000 个页面需要多少费用? 普通页面约 10,000 积分,若部分页面需要浏览器则更多。10,000 个网页 花费 US$3.75;预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # OpenAI function calling:为你的模型提供 read_url 工具 > 使用 read_url 工具的 OpenAI function calling:JSON schema 和将链接转换为干净 Markdown 供模型使用的 Python 循环。无需 KYC,加密货币支付。 - URL: https://webreaderapi.com/zh/docs/openai/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 定义一个函数 `read_url`,并在模型请求时运行它。模型选择读取哪些页面;你的代码调用 API 并返回 Markdown。同一套 schema 也适用于其他支持工具调用的模型。 **快速回答 — 如何让 OpenAI 模型通过函数调用读取网页?** 在 `tools` 列表中声明一个 `read_url` 函数,然后运行一个循环:当模型返回工具调用时,用 URL 调用 **WebReaderAPI** 的 `/read` endpoint,并把 Markdown 作为 `tool` 消息回传。每个页面消耗 1 积分,使用浏览器时消耗 2 积分,价格自 2026 年 10 月起为 US$0.07/千页。无需 KYC;使用加密货币支付。 ## read_url schema 是什么样的? 两个参数就够了:要读取的 `url`(必填),以及一个可选的 `max_chars`,让模型可以保持长页面简短。description 是最重要的部分:它告诉模型这个工具返回什么、何时使用。保持事实性并简短。 我们将该工具命名为 `read_url` 而不是 `web_fetch`,以避免与某些 agent 运行时已在该名称下提供的工具发生冲突。 *工具定义* ```json { "type": "function", "function": { "name": "read_url", "description": "Read a public web page and return its main content as Markdown, with its title and source URL. Use it when the user gives a link or when a page must be read to answer.", "parameters": { "type": "object", "properties": { "url": { "type": "string", "description": "The http or https address of the page." }, "max_chars": { "type": "integer", "description": "Most characters to return, 1000 to 500000. Default 20000." } }, "required": ["url"], "additionalProperties": false } } } ``` ## 工具调用循环是如何工作的? 发送带有 `tools` 列表的对话。如果回复包含工具调用,就逐个运行,将结果作为带有 role `tool` 和匹配的 `tool_call_id` 的消息追加,然后再次询问模型。当回复返回时没有工具调用,它就是最终答案。 限制轮数。对于涉及少量页面的问题,三轮或四轮就足够了,而且这个上限可以保护你免受不断要求更多内容的模型影响。 *Python:使用 openai 包的完整循环* ```python import json import os import requests from openai import OpenAI READ_URL = { "type": "function", "function": { "name": "read_url", "description": "Read a public web page and return its main content as Markdown, with its title and source URL.", "parameters": { "type": "object", "properties": { "url": {"type": "string", "description": "The http or https address of the page."}, "max_chars": {"type": "integer", "description": "Most characters to return. Default 20000."}, }, "required": ["url"], "additionalProperties": False, }, }, } def read_url(url, max_chars=20000): resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": url, "max_chars": max_chars}, timeout=75, ) body = resp.json() if resp.status_code != 200: return "Could not read the page: " + body["error"]["code"] return "# " + (body.get("title") or url) + "\nSource: " + body["final_url"] + "\n\n" + body["markdown"] client = OpenAI() model = os.environ.get("OPENAI_MODEL", "gpt-4.1-mini") messages = [{"role": "user", "content": "What does https://example.com/blog/first-post announce? Answer in two sentences."}] for _ in range(4): reply = client.chat.completions.create(model=model, messages=messages, tools=[READ_URL]) msg = reply.choices[0].message if not msg.tool_calls: print(msg.content) break messages.append(msg) for call in msg.tool_calls: args = json.loads(call.function.arguments) messages.append({"role": "tool", "tool_call_id": call.id, "content": read_url(**args)}) ``` ## 如何降低 token 使用量和成本? 有三个设置很重要。将 `max_chars` 保持在适度水平,每页约 8,000 到 20,000 个字符,因为你返回的每个字符都会被模型读取。保持默认的 `main_content=true`,这样菜单和页脚永远不会进入上下文。并且如上所述限制循环,这样一个问题无法触发数十次读取。 在我们这边,成本按页计算,而不是按字符计算:1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。一个每天读取 300 个页面的支持助手每月大约使用 9,000 积分,在 10,000 个网页(US$3.75)之内。 ## 该 schema 能与其他模型一起使用吗? 可以,只需要在 wrapper 中做小的改动。大多数工具调用 API 接受用于参数的 JSON Schema,以及工具的名称和描述,因此 `read_url` 可以原样跨提供商迁移。[MCP 页面](https://webreaderapi.com/zh/docs/mcp/) 为使用 Model Context Protocol 的客户端打包了相同的函数,而 [LangChain 页面](https://webreaderapi.com/zh/docs/langchain/) 为 LangChain 和 LlamaIndex agent 封装了它。 ## 页面被拒绝时模型应该看到什么? 一句简短、清晰的句子,就像上面的循环返回的那样:"Could not read the page: blocked_by_robots"。模型能很好地处理这种情况,并回退到其他来源或告诉用户。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。这些拒绝都不会消耗积分。 ## 函数调用:常见问题 ### 这需要 Responses API 还是 Chat Completions? 示例使用带有 `tools` 参数的 Chat Completions。相同的函数定义和相同的 `read_url` 请求体也适用于其他接受函数工具的 OpenAI 接口;只有围绕它们的循环会发生变化。 ### 模型能在一轮中读取多个页面吗? 可以。一个回复可以包含多个工具调用;循环会运行每个调用,并在再次询问模型之前返回每个结果。当模型一次读取多个页面时,请将 `max_chars` 设得更低。 ### API 密钥会暴露给模型吗? 不会。密钥保留在你代码的环境中。模型只能看到工具的名称、描述以及你的函数返回的文本。 ### 被拒绝的页面会花费什么? 什么也不花费。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # OpenClaw:通过 MCP 添加网页阅读器,与 web_fetch 并列 > 通过 MCP 向 OpenClaw 添加网页阅读器:openclaw mcp add、doctor --probe,以及 read_url 如何补充内置的 web_fetch。无需 KYC,使用加密货币支付。 - URL: https://webreaderapi.com/zh/docs/openclaw/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) OpenClaw 已经有一个用于轻量页面的 `web_fetch` 工具。添加我们的 MCP server 为 agent 提供了第二个阅读器 `read_url`,用于 JavaScript 页面、PDF 和更长的文档。设置只需一条命令。 **快速回答 — 如何向 OpenClaw 添加网页阅读器 API?** 保存 **WebReaderAPI** MCP server,然后用 `openclaw mcp add webreaderapi --command … --arg … --env WEBREADER_API_KEY=…` 注册它,并用 `openclaw mcp doctor --probe` 检查。agent 会得到一个 `read_url` 工具,与内置的 `web_fetch` 并列,能够渲染 JavaScript 并读取 PDF。页面自 2026 年 10 月起每个消耗 1 积分,价格从 US$0.07/千页 起。无需 KYC;使用加密货币支付。 ## OpenClaw 的 web_fetch 与 read_url 并排对比 | 属性 | 值 | | --- | --- | | web_fetch(内置) | 本地运行,使用 Readability 提取正文,返回 Markdown 或文本 | | web_fetch 限制 | 不执行 JavaScript;默认 `maxChars`,上限为 20,000 个字符(OpenClaw 文档) | | read_url(我们的 MCP 工具) | 在需要时渲染 JavaScript,支持最多 100 页的 PDF,最多 500,000 个字符 | | read_url 成本 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | | 我们的爬虫 | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`,遵守 robots.txt | | 工具配置 | MCP 工具会出现在 `coding` 和 `messaging` 配置中,不会出现在 `minimal` 中 | ## OpenClaw 已经有 web_fetch,为什么还要加一个 reader? 因为它们覆盖的是不同的页面。OpenClaw 的文档说 `web_fetch` 始终在本地运行,使用 Readability 做正文提取,并且不执行 JavaScript;对于 JavaScript 较重或需要登录的网站,文档指向它的 Web Browser 工具。它的 `maxChars` 设置默认是 20,000 个字符,并以该值为上限。 轻量、简单的页面继续用 `web_fetch`。对于用 JavaScript 构建内容的页面、PDF,以及想要超过 20,000 个字符的长文档,再加上 `read_url`。OpenClaw 的文档还指出,官方 Firecrawl 插件目前是 `web_fetch` 唯一可以回退到的内置提供商。 ## 如何在 OpenClaw 中注册 MCP server? 先从 [MCP 页面](https://webreaderapi.com/zh/docs/mcp/) 搭好 Python server:一个文件,加上 `mcp` 和 `httpx` 两个包。然后用 `openclaw mcp add` 把它保存到 OpenClaw 中。OpenClaw 的注册文档介绍了 stdio 参数 `--command`、`--arg`、`--env` 和 `--cwd`,并把保存的定义存放在其配置中的 `mcp.servers` 下。 之后运行 `openclaw mcp doctor --probe`。不带 `--probe` 时,doctor 只检查保存的配置;带上它,还会确认已启用的 server 能够连接。 *注册并检查 server* ```bash openclaw mcp add webreaderapi \ --command /home/you/webreader/.venv/bin/python \ --arg /home/you/webreader/webreader_mcp.py \ --env WEBREADER_API_KEY=your-key openclaw mcp doctor webreaderapi --probe ``` ## agent 能看到 read_url 吗? 在常用的配置中,可以。OpenClaw 的注册文档说,内嵌的 OpenClaw 会在 `coding` 和 `messaging` 配置中公开已配置的 MCP 工具。`minimal` 配置会隐藏它们,`tools.deny: ["bundle-mcp"]` 会将其关闭,所以如果工具没有出现,请检查这两个设置。 工具的描述会告诉模型何时优先使用它:需要 JavaScript 的页面、PDF 和长时间阅读。其余情况模型仍可使用 `web_fetch`。 ## read_url 会如何对待它读取的网站? 和我们 API 的每一次调用一样。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 因此,需要登录的页面不在 `read_url` 的范围内。对于你已登录的网站,用 OpenClaw 自带的浏览器工具、以你的会话运行,才是合适的工具。 ## 通过 OpenClaw 读取页面要花多少钱? 每返回一个有内容的页面消耗 1 个积分,需要浏览器时消耗 2 个积分,被拒绝和出错不收费。一个在其各个聊天渠道中每天读取 30 个页面的助手,每月大约用 900 个积分:10,000 个网页(US$3.75)差不多能用将近一年。预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。 给 OpenClaw 单独的 API 密钥,这样它的用量就能与其他项目分开显示。 ## OpenClaw:常见问题 ### WebReaderAPI 是 OpenClaw 内置的提供商吗? 不是。它通过 MCP server 连接,OpenClaw 无需任何插件代码即可支持。该 MCP server 就是我们 [MCP 页面](https://webreaderapi.com/zh/docs/mcp/) 上那个简短的 Python 文件。 ### 我应该禁用 web_fetch 吗? 没必要。两个工具都可以保持开启;描述会告诉模型哪一个更合适。只有当你希望所有读取都经过同一个地方以便记录日志时,才禁用 `web_fetch`。 ### 我能从 OpenClaw 的网页界面管理该 server 吗? OpenClaw 的文档说明 MCP 设置位于其 Control UI 中,它编辑的是与命令行相同的已保存定义。用你更喜欢的那个即可。 ### 它在沙箱化的 OpenClaw 环境中能用吗? MCP server 是一个本地进程,需要访问互联网才能连接到 `https://webreaderapi.com/api/v1/read`。请检查你的沙箱是否允许该进程启动并发出那次 HTTPS 调用。 ## 来源 1. [网页工具](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) 2. [Web Fetch](https://docs.openclaw.ai/tools/web-fetch) — OpenClaw docs (read 2026-10-22) 3. [管理已保存的 MCP server](https://docs.openclaw.ai/cli/mcp/registry) — OpenClaw docs (read 2026-10-22) 4. [Control UI 中的 MCP](https://docs.openclaw.ai/cli/mcp/control-ui) — OpenClaw docs (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 用 Python 将网页转为 Markdown > 在 Python 中将网页转为 Markdown:requests、带并发上限的异步 httpx、批量任务,以及按标题做 RAG 分块。低至 US$0.07/千页,无需 KYC。 - URL: https://webreaderapi.com/zh/docs/python/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 四个方案覆盖了大多数 Python 项目:用 requests 读取一个页面,用 httpx 并发读取多个页面,把列表交给批量任务,以及把 Markdown 切分成块以供向量存储使用。 **快速回答 — 如何在 Python 中将网页转为 Markdown?** 调用 **WebReaderAPI**,传入 `requests.get("https://webreaderapi.com/api/v1/read", params={"url": ...})` 和放在 `Authorization` 头中的密钥;JSON 结果会在 `markdown` 中给出页面的正文。对于多个页面,使用带 semaphore 或批量任务的 `httpx.AsyncClient`。每个页面消耗 1 个积分,截至 2026 年 10 月低至 US$0.07/千页。无需 KYC;使用加密货币支付。 ## 我需要安装什么? Python 3.9 或更高版本,以及一个 HTTP 客户端。`requests` 对一次读取一个页面的脚本来说就足够了;`httpx` 增加了对多个页面并行处理的异步支持。不需要我们的任何包:该 API 就是普通的 HTTPS 和 JSON。 不要把密钥写在代码里。像下面每个示例那样从 `WEBREADER_API_KEY` 环境变量中读取它,并为每个项目分配各自的密钥,这样你就能在不影响其他项目的情况下吊销其中一个。 *安装* ```bash pip install requests httpx export WEBREADER_API_KEY="your-key" ``` ## 如何用 requests 读取一个页面? 把 `url` 和任何选项作为查询参数发送,在出现 HTTP 错误时抛出异常,并读取你需要的字段。示例会保留正文,为模型将其限制在 20,000 个字符以内,并打印这次调用的花费。 *requests:一个页面* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def read(url, **options): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) if resp.status_code != 200: error = resp.json()["error"] raise RuntimeError(error["code"] + ": " + error["message"]) return resp.json() page = read("https://example.com/docs/getting-started", max_chars=20000) print(page["title"], page["word_count"], "words", page["credits_used"], "credit(s)") print(page["markdown"][:500]) ``` ## 如何用 httpx 一次读取多个页面? 使用一个 `httpx.AsyncClient` 和一个设置为你并发上限或以下的 `asyncio.Semaphore`。每个账户都有同时读取页面数的上限;你的控制台会显示该上限,支持团队可将其提高。某一个页面的错误不应中断其他页面,因此示例会把它们收集在结果旁边,而不是抛出异常。 如果你超过上限,API 会返回 `429 concurrency_limit`;不会计费,但该页面不会被读取。把 semaphore 保持在上限以下比重试更简单。 *httpx:最多 10 个页面同时进行* ```python import asyncio import os import httpx API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} async def read_one(client, sem, url): async with sem: resp = await client.get(API, params={"url": url, "max_chars": 50000}) body = resp.json() if resp.status_code == 200: return url, body, None return url, None, body["error"]["code"] async def read_many(urls, limit=10): sem = asyncio.Semaphore(limit) async with httpx.AsyncClient(headers=HEADERS, timeout=75) as client: return await asyncio.gather(*(read_one(client, sem, u) for u in urls)) if __name__ == "__main__": urls = [f"https://example.com/blog/post-{n}" for n in range(1, 21)] for url, page, error in asyncio.run(read_many(urls)): print(url, "->", error or page["title"]) ``` ## 什么时候应该改用批量任务? 当你有一个最多包含 100 个 URL 的列表,并且不需要每个页面一就绪就立刻拿到。批量任务在我们这边运行,所以你的脚本不用保持任何连接,也不做重试逻辑。用 `POST https://webreaderapi.com/api/v1/batch` 启动它,然后用[batch and crawl 页面](https://webreaderapi.com/zh/docs/crawl/)上展示的 cursor 循环从任务中收集结果。 如果要处理整个站点,就改为启动一次整站抓取 (crawl),让它跟随 sitemap 和链接;同一页面有一个完整的循环,会为每个页面写一个 `.md` 文件。 *启动批量任务* ```python import os import requests urls = [f"https://example.com/changelog/{year}" for year in range(2020, 2027)] resp = requests.post( "https://webreaderapi.com/api/v1/batch", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"urls": urls, "options": {"format": "markdown", "main_content": True}}, timeout=30, ) resp.raise_for_status() print("job:", resp.json()["job_id"]) ``` ## 如何把 Markdown 切分成块用于 RAG? 先按标题切分,再按大小切分。标题标记主题变化的位置,所以从标题开始的块更容易被检索器匹配。在每块的 metadata 中保留页面标题和标题路径:它们能帮模型引用正确的章节。 下面的函数不需要额外的库。它按 `#` 到 `###` 级标题切分,然后把过长的章节按空行切分,以保持在字符预算之内。为每一块存储 `final_url`,这样指向同一页面的两个地址就不会产生重复。 *按标题切分 Markdown* ```python import re def chunk_markdown(page, max_chars=2000): """Split a /read response into chunks with a heading path and the source URL.""" chunks, path, buf = [], [], [] def flush(): text = "\n".join(buf).strip() while text: part = text[:max_chars] cut = part.rfind("\n\n") if len(text) > max_chars and cut > max_chars // 2: part = part[:cut] chunks.append({"text": part.strip(), "section": " > ".join(path), "title": page.get("title"), "source": page["final_url"]}) text = text[len(part):].strip() buf.clear() for line in page["markdown"].splitlines(): m = re.match(r"^(#{1,3}) (.+)", line) if m: flush() level = len(m.group(1)) path[:] = path[: level - 1] + [m.group(2).strip()] buf.append(line) flush() return chunks ``` ## 一个 Python 任务要花多少钱? 按页面数计费,而不是按请求数。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。在没有浏览器的情况下读取 2,000 个文档页面大约用 2,000 积分,10,000 个网页(US$3.75)可以覆盖五倍于此的量。预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用,所以每月运行一次的 pipeline 只消耗它实际读取的量。 ## Python:常见问题 ### 有官方 Python 包吗? 没有。本页的代码就是你需要的全部:WebReaderAPI 是一个普通的 HTTPS API,`requests` 或 `httpx` 可以直接与它通信。 ### 如何处理被 robots.txt 拒绝的页面? 检查错误码。`blocked_by_robots` 和 `target_refused` 是最终结果且免费;记录它们然后继续。[错误页面](https://webreaderapi.com/zh/docs/errors/)上有一个重试辅助函数,只重试那些可能发生变化的错误码。 ### 我可以在 Jupyter notebook 中使用这个 API 吗? 可以。`requests` 的写法可以直接使用。在 notebook 中,用 `await read_many(urls)` 替代 `asyncio.run`,因为 notebook 本身已经在运行事件循环。 ### 我的客户端应该用多长的超时? 比 API 自身的超时略长一点:默认 30 秒,最大 60 秒,所以客户端设 75 秒可以为慢速站点和响应留出余量。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 阅读 endpoint 参考文档:GET 和 POST /read > 阅读 endpoint 参考文档:GET 和 POST /read 的每个参数,从 format、render 到 country 和 max_chars,并附示例。从 US$0.07/千页 起,无需 KYC。 - URL: https://webreaderapi.com/zh/docs/read/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) `/read` 抓取一个公开页面,提取其正文,并以 Markdown、纯文本或清理后的 HTML 返回。本页列出每个参数、其默认值以及费用。 **快速回答 — WebReaderAPI 的 read endpoint 接受哪些参数?** **WebReaderAPI** 的 `/read` endpoint 需要一个参数,`url`。可选参数则决定输出格式(`format`)、保留页面的多少内容(`main_content`)、是否运行浏览器(`render`)、链接与图片、读取所在国家、字符上限和超时。普通页面花费 1 积分,使用浏览器则 2 积分,自 2026 年 10 月起从 US$0.07/千页 起。无需 KYC;可使用加密货币支付。 ## /read at a glance | 属性 | 值 | | --- | --- | | 方法 | `GET` 带查询参数,或 `POST` 带 JSON body,使用相同的名称 | | URL | `https://webreaderapi.com/api/v1/read` | | 必填 | `url`:一个 http 或 https 地址,最多 2,048 个字符 | | 默认输出 | 正文的 Markdown | | 计费 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | | 国家 | 选择页面的读取国家会额外增加 10 积分,因为此时页面会通过该国家的住宅连接读取 | | PDF | 最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分 | | 爬虫身份 | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | ## 读取一个页面(GET) `GET /api/v1/read` 抓取一个公开页面,并以 Markdown 返回其正文,同时附带页面 metadata。参数放在查询字符串中,经过 URL 编码。示例读取一篇博客文章;ID、日期和值仅作示例。 认证:将 API 密钥放在 `Authorization: Bearer API_KEY` 请求头中。 **参数** | 名称 | 位置 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | --- | | `url` | query | string | 是 | 要读取的页面:http 或 https,最多 2,048 个字符。私有、本地和云 metadata 地址会被拒绝。 | | `format` | query | string | 否 | `markdown`(默认)、`text`(纯文本,无标记)或 `html`(内容清理后的 HTML)。 | | `main_content` | query | boolean | 否 | `true`(默认)只保留文章或正文;`false` 转换整个页面,包括菜单和页脚。 | | `render` | query | string | 否 | `auto`(默认)只有当原始 HTML 文本太少时才启动浏览器;`true` 总是启动;`false` 从不启动。渲染过的页面花费 2 积分。 | | `include_links` | query | boolean | 否 | `true` 会添加一个 `links` 列表,包含 `{url, text}`。默认 `false`。 | | `include_images` | query | boolean | 否 | `true` 在 Markdown 中将图片保留为 `![alt](src)`。默认 `false`。 | | `country` | query | string | 否 | 两位国家代码(ISO 3166-1 alpha-2)。页面会从该国家的一个地址读取,额外花费 10 积分(住宅连接)。 | | `max_chars` | query | integer | 否 | 将输出截断到此字符数,从 1,000 到 500,000。适合用来适配模型的上下文。 | | `timeout` | query | integer | 否 | 等待网站响应的秒数,范围 5 到 60,默认 30。 | | `api_key` | query | string | 否 | 你的 API 密钥,如果你没有发送 `Authorization` header。 | **响应** `200` ```json { "url": "https://example.com/blog/first-post", "final_url": "https://example.com/blog/first-post", "status_code": 200, "fetched_at": "2026-10-22T09:41:12Z", "rendered": false, "credits_used": 1, "title": "Our first post", "description": "Why we started this blog and what comes next.", "language": "en", "author": "Jane Doe", "published_at": "2026-10-01", "site_name": "Example Blog", "markdown": "# Our first post\n\nWe started this blog to share what we learn...\n\n## What comes next\n\n- A post every month\n- Notes from our team", "word_count": 612 } ``` *curl* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/blog/first-post" \ -d format=markdown -d max_chars=20000 ``` *Python* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/blog/first-post", "max_chars": 20000}, timeout=70, ) resp.raise_for_status() print(resp.json()["markdown"][:300]) ``` *Node.js* ```javascript const params = new URLSearchParams({ url: 'https://example.com/blog/first-post', max_chars: '20000' }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const page = await res.json(); console.log(page.markdown.slice(0, 300)); ``` ## 读取单个页面(POST) `POST /api/v1/read` 同一个 endpoint,同样的参数,以 JSON body 发送。当 URL 非常长,或者你的 HTTP 客户端构建 JSON 比构建查询字符串更容易时,优先使用 POST。响应与 GET 形式完全一致。 认证:将 API 密钥放在 `Authorization: Bearer API_KEY` 请求头中。 **请求体** | 字段 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | `url` | string | 是 | 要读取的页面。 | | `format`, `main_content`, `render`, `include_links`, `include_images`, `country`, `max_chars`, `timeout` | mixed | 否 | 与上面 GET 表格中的相同,使用 JSON 类型:布尔值为 `true`/`false`,数字不加引号。 | *示例: a JavaScript-heavy page, read from Germany, with its links* ```json { "url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": true, "max_chars": 30000 } ``` **响应** `200` ```json { "url": "https://example.com/app/pricing", "final_url": "https://example.com/de/app/pricing", "status_code": 200, "fetched_at": "2026-10-22T09:44:03Z", "rendered": true, "credits_used": 3, "title": "Pricing", "language": "de", "markdown": "# Pricing\n\n| Plan | Price |\n|---|---|\n| Basic | ... |", "word_count": 214, "links": [ { "url": "https://example.com/de/contact", "text": "Contact" } ] } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": true}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": True}, timeout=70, ) print(resp.json()["credits_used"], "credits") ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/read', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ url: 'https://example.com/app/pricing', render: 'true', country: 'de', include_links: true }), }); console.log((await res.json()).credits_used); ``` ## 我应该选择哪种输出格式? 为语言模型和 RAG 选择 `markdown`:标题、列表、表格和链接都会保留,文本保持紧凑。如果你只统计词数、分类或搜索,标记只会是噪音,就选择 `text`。如果你自己的 pipeline 已经解析 HTML,只想去掉杂乱内容,就选择 `html`。 三种格式的 metadata 字段都相同,只有内容字段的名称不同:`markdown`、`text` 或 `html`。 ## 什么时候应该把 main_content 设为 false? 当你需要的是文章周围的部分时,把它设为 `false`。例如用网站导航来梳理其版块、含法律或联系信息的页脚,或者规格参数位于侧边栏的产品页。 在默认值 `true` 下,提取器会保留主内容块,去掉导航、cookie 横幅、广告、分享按钮和页脚。这正是大多数 agent 和 RAG pipeline 想要的,而且通常能把页面缩减到其 HTML 体积的一小部分。 ## render=auto 如何决定是否使用浏览器? 它先抓取原始 HTML,速度快,消耗 1 积分。如果该 HTML 中可读文本太少(通常是使用 JavaScript 构建页面的应用),它会在无头浏览器中重新加载页面,该次调用消耗 2 积分。响应会告诉你走了哪条路径:`rendered` 为 `true` 或 `false`。 当你知道网站提供完整 HTML 并且想要固定成本时,设置 `render=false`。对于单页应用,设置 `render=true` 以跳过第一次尝试。 ## country 和 max_chars 会改变什么? `country` 会从你指定国家的地址读取页面,User-Agent 相同。适用于价格、语言或可用性随国家而变的页面。它额外增加 10 积分,因为此时页面是通过住宅连接读取的,并且不能用于该服务不运营的国家。 `max_chars` 会在达到该字符数后截断输出。它不改变价格,但能保护 agent 的上下文窗口:对于传给模型的单个页面,20,000 个字符是一个合理的默认值。 ## /read 能处理 PDF 文件吗? 可以。当 URL 返回 PDF 时,文本会以 Markdown 的形式通过同一个 `markdown` 字段返回。最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。没有文本层的扫描版 PDF 返回的文本很少或没有,因为没有字符识别步骤。 ## 读取 endpoint:常见问题 ### /read 会跟随重定向吗? 会,最多 5 次。响应会在 `url` 中给出你请求的地址,在 `final_url` 中给出实际读取的地址。重定向到私有或本地地址会被拒绝。 ### 我可以读取需要登录的页面吗? 不可以。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。位于登录或付费墙之后的页面会返回网站的拒绝结果,并且该次调用免费。 ### 每次调用都会检查 robots.txt 吗? 会,对照网站 robots.txt 的副本进行,该副本最多 24 小时。被禁止的 URL 会返回 `403 blocked_by_robots`,且不消耗积分。 ### 我可以同时读取多少个页面? 每个账户都有同时读取页面数的上限;你的控制台会显示该上限,支持团队可将其提高。对于大量 URL,[批处理任务](https://webreaderapi.com/zh/docs/crawl/) 比运行许多并行调用更简单。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # Read API 响应格式,逐字段说明 > Read API 响应格式:为单个页面返回的每个字段,从 markdown 和 word_count 到 final_url 和 rendered,以及任务结果。无需 KYC,使用加密货币支付。 - URL: https://webreaderapi.com/zh/docs/response/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 每次 `/read` 调用都会返回一个 JSON 对象:你想要格式的页面内容、其 metadata,以及三个告诉你发生了什么和消耗了多少的字段。任务结果复用同一个对象。 **快速回答 — WebReaderAPI 的读取响应包含什么?** **WebReaderAPI** `/read` 响应包含 `markdown`(或 `text` 或 `html`)格式的页面内容、其 metadata(`title`、`description`、`author`、`published_at`、`language`、`site_name`、`word_count`),以及抓取的相关事实:`final_url`、`status_code`、`rendered` 和 `credits_used`。普通页面使用 1 积分,截至 2026 年 10 月起为 US$0.07/千页。无需 KYC;使用加密货币支付。 ## 哪些字段描述抓取过程? 这些字段在成功响应中始终存在。 | 字段 | 类型 | 含义 | | --- | --- | --- | | `url` | string | 你发送的地址 | | `final_url` | string | 实际读取的地址,在重定向之后(最多 5 次) | | `status_code` | integer | 网站最终地址返回的 HTTP 状态码,通常为 200 | | `fetched_at` | string | 抓取时间,ISO 8601 格式,UTC 时间 | | `rendered` | boolean | 当由无头浏览器构建页面时,此值为 `true` | | `credits_used` | integer | 此页面计费的积分:1,使用浏览器时 2,使用 `country` 时另加 10;PDF 每开始 10 页计 1 | ## 哪些字段描述页面? 元数据来自页面本身:其 title 标签、meta 标签、结构化数据和可见署名。页面未提供的字段将缺失,因此使用前请先判断其是否存在。 | 字段 | 类型 | 含义 | | --- | --- | --- | | `title` | string | 页面或文章标题 | | `description` | string | 页面对自身的摘要 | | `language` | string | 内容的语言代码,例如 `en` 或 `de` | | `author` | string | 页面上标明的作者 | | `published_at` | string | 页面声明的发布日期 | | `site_name` | string | 网站自身的名称 | | `word_count` | integer | 返回内容中的词数,在正文提取后、`max_chars` 之前统计 | ## 内容本身在哪里? 返回一个内容字段,以其名称对应你所选的 `format`。 | 字段 | When | Content | | --- | --- | --- | | `markdown` | `format=markdown`(默认) | Markdown 格式的标题、段落、列表、表格和链接;使用 `include_images=true` 时还包括图片 | | `text` | `format=text` | 纯文本,段落之间以空行分隔 | | `html` | `format=html` | 主体内容的清理后 HTML,不含脚本、样式或广告 | | `links` | `include_links=true` | 页面上找到的链接的 `{url, text}` 列表,绝对 URL | *完整响应(数值仅为示例)* ```json { "url": "https://example.com/guides/compost", "final_url": "https://example.com/guides/compost-at-home", "status_code": 200, "fetched_at": "2026-10-22T10:02:44Z", "rendered": false, "credits_used": 1, "title": "Compost at home: a beginner's guide", "description": "What to put in a compost bin, and what to leave out.", "language": "en", "author": "Sam Rivera", "published_at": "2026-09-14", "site_name": "Example Garden", "markdown": "# Compost at home: a beginner's guide\n\nA compost bin turns kitchen scraps into soil...\n\n## What goes in\n\n- Fruit and vegetable peels\n- Coffee grounds\n\nSee also [Choosing a bin](https://example.com/guides/bins).", "word_count": 1184, "links": [ { "url": "https://example.com/guides/bins", "text": "Choosing a bin" } ] } ``` ## 如何区分渲染页面和普通页面? 查看 `rendered`。使用 `render=auto` 时,API 先读取原始 HTML;只有当该 HTML 文本过少时才启动浏览器,随后将 `rendered` 设为 `true`,将 `credits_used` 设为 2。如果你经常读取的某个站点总是以渲染形式返回,可以一开始就发送 `render=true`:成本相同,而且能省去一次无用的首步。 如果页面返回时未渲染但内容偏少,将 `word_count` 与你在浏览器中看到的内容进行比较。计数偏低通常意味着内容需要 JavaScript;用 `render=true` 重试一次。 ## 为什么 final_url 可能与 url 不同? 因为站点会重定向。短链接、旧地址、缺少末尾斜杠或语言切换都会把你带到别处。API 最多跟随 5 次重定向,并在 `final_url` 中报告它最终读取的地址。 在 RAG 索引中,将 `final_url` 存储为文档的 canonical 来源。两个不同的 `url` 值如果最终都指向同一个 `final_url`,就是同一个页面,因此你可以在嵌入之前去掉重复项。 ## 任务结果是什么样的? `GET https://webreaderapi.com/api/v1/jobs/{job_id}` 返回 `job_id`、`status`(`queued`、`running` 或 `done`)、`results`、`next_cursor` 以及该任务的运行中 `credits_used`。`results` 的每一项为两种形态之一: - 一个完整的 `/read` 响应,完全如上所述,对应已读取的页面; - `{url, error}` 对应未读取的页面,其中 `error` 具有与 [API error](https://webreaderapi.com/zh/docs/errors/) 相同的 `code` 和 `message`。 当还有更多结果就绪时,`next_cursor` 会出现;将其作为 `cursor` 回传以获取这些结果。[batch and crawl page](https://webreaderapi.com/zh/docs/crawl/) 有完整的轮询循环。 *任务结果页面(数值仅为示例)* ```json { "job_id": "job_5c1e8a90d2", "status": "done", "results": [ { "url": "https://example.com/blog/post-1", "final_url": "https://example.com/blog/post-1", "status_code": 200, "rendered": false, "credits_used": 1, "title": "Post one", "markdown": "# Post one\n\n...", "word_count": 802 }, { "url": "https://example.org/members/area", "error": { "code": "target_refused", "message": "The site refused the request.", "target_status": 403 } } ], "credits_used": 1 } ``` ## 错误响应是什么样的? 错误返回时带有 400 或以上的 HTTP 状态码,以及 JSON 正文 `{"error": {"code", "message"}}`。当站点本身拒绝了请求时,`target_status` 给出站点发送的状态码。错误不计费。[errors page](https://webreaderapi.com/zh/docs/errors/) 列出了每个代码及其原因,以及重试是否有帮助。 ## 响应格式:常见问题 ### 设置 max_chars 时 Markdown 会被截断吗? 会。content 字段在该字符数处停止。`word_count` 仍描述整个提取内容,因此你可以看到省略了多少。 ### 为什么缺少 author 或 published_at? 因为页面没有以可读取的方式说明。许多页面不提供作者或日期。缺失的字段会被省略,而不是返回空值。 ### Markdown 中的链接是绝对的吗? `links` 列表中的链接是绝对的。编写代码以接受 Markdown 正文中的两种形式,并将相对链接基于 `final_url` 解析。 ### 我能获取整个页面的原始 HTML 吗? 最接近的是 `format=html`,提供 `main_content=false`,它会返回去除脚本和样式的整页内容。v1 不包含原始逐字节 HTML。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # WebReaderAPI 常见问题 > WebReaderAPI 常见问题:关于网页阅读 API 的 30 个解答:每页价格、JavaScript 和 PDF、整站抓取 (crawl)、robots.txt、被拦截的网站、KYC、加密货币支付和 AI 智能体。 - URL: https://webreaderapi.com/zh/faq/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 针对开发者、AI 构建者和网站所有者最常问的问题,解答如何用 WebReaderAPI 把网页转成 Markdown。每个解答都以结论开头。 **快速回答 — 人们最常问 WebReaderAPI 的哪些问题?** 主要是每页价格、JavaScript 页面和 PDF 如何计费,以及网站拒绝 robots 时会发生什么。简而言之:**WebReaderAPI** 每读取一页收取 1 积分,使用浏览器时收 2 积分,截至 2026 年 10 月,起价为 US$0.07/千页;被拒绝或读取失败的页面不收费;始终遵守 robots.txt。无需 KYC;用加密货币支付。 ## 价格与积分 ### WebReaderAPI 多少钱? 预付套餐价格为 10,000 个网页 页 US$3.75、100,000 个网页 页 US$21.75、1,000,000 个网页 页 US$74.25,截至 2026 年 10 月。5,000,000 个网页 套餐的单价降至 US$0.07/千页。[定价页面](https://webreaderapi.com/zh/pricing/) 列出了所有套餐。 ### 1 积分能买什么? 读取一页,不使用浏览器。需要 JavaScript 渲染的页面消耗 2 积分,从指定国家读取再加 1 积分。响应中的 `credits_used` 会告诉你实际消耗,因此你可以在自己的日志中跟踪每页成本。 ### 积分会过期吗? 不会。预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。为一次性整站抓取 (crawl) 购买的套餐,未用完的页数可以留给下一个项目。 ### 页面无法读取时会被收费吗? 不会。出错不消耗积分,无论原因在我方、网络还是网站本身。这包括被 robots.txt 拒绝、被 `ai-input=no` 信号拒绝,或被网站自身响应拒绝的页面。 ### 有免费套餐吗? 没有。没有免费套餐:最小的积分包是测试的途径,用最低充值额支付,仅为达到该最低额而多充的金额,可在 30 天内按要求以 USDT 或 USDC 退回,前提是尚未使用。 ### 最低可以充值多少? 最低充值金额为 US$25。最小的 10,000 个网页 套餐价格为 US$3.75;充值剩余部分留在你的余额中,可用于后续套餐,若未使用可在 30 天内申请退回。 ## API 读取和返回的内容 ### WebReaderAPI 能读取用 JavaScript 构建的页面吗? 可以。页面需要时在无头浏览器中渲染 JavaScript(render=auto),或始终渲染,或从不渲染。使用 `render=auto` 时,只有当原始 HTML 文本太少才会启用浏览器,因此简单页面仍只消耗 1 积分。 ### 能转换 PDF 文件吗? 可以。最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。把 PDF 的 URL 发送到同一个 `/read` endpoint;文本会以 Markdown 返回。 ### 能读取整个网站吗? 可以,用整站抓取 (crawl) 任务。每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay。你可以将其限制在 `/docs/*` 等路径下;每读取一页都像单个请求一样消耗积分。 ### 一次可以发送多少个 URL? 每个批量任务最多 100 个 URL。批量任务以 job 形式运行:你发送列表,收到 `job_id`,任务完成后收集全部结果。 ### 如何让页面不超出模型的上下文窗口? 设置 `max_chars`。Markdown 会按该长度截断,范围为 1,000 到 500,000 个字符。结合 `main_content=true`,可让长页面保持在可预测的 token 预算内。 ### Markdown 会保留表格、代码块和链接吗? 会。标题、列表、表格、代码块和链接都会保留 Markdown 形式。链接为内联形式;添加 `include_links=true` 可同时以单独列表返回链接,添加 `include_images=true` 可保留图片。 ### “正文”指什么? 指读者真正想要的那部分页面内容:文章、文档或产品描述。使用默认值 `main_content=true` 时,导航菜单、Cookie 横幅、广告、侧边栏和页脚会被移除。设为 `false` 可转换整个页面。 ### 能读取在其他国家显示的页面吗? 可以,使用 `country` 参数和两位国家代码。选择页面的读取国家会额外增加 10 积分,因为此时页面会通过该国家的住宅连接读取。有些网站会按国家更改价格、语言或内容。 ## robots.txt 与被拒绝的页面 ### WebReaderAPI 会遵守 robots.txt 吗? 始终遵守。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。[bot 页面](https://webreaderapi.com/zh/bot/) 展示了 user agent,以及站点所有者如何允许或拒绝它。 ### 对于受 Cloudflare 或其他机器人过滤保护的网站会怎样? 如果网站允许我们的爬虫通过,页面会被正常读取。如果网站拒绝或以质询页面作答,我们会将该应答作为 `target_refused` 返回,不收取任何费用。我们绝不尝试绕过质询。 ### WebReaderAPI 能读取登录或付费墙后面的页面吗? 不能,绝不可以,即使使用你提供的凭据也不行。需要账户或订阅的内容不在范围内,请求这类内容违反[可接受使用政策](https://webreaderapi.com/zh/acceptable-use/)。 ### ai-input=no 信号是什么? 有些站点会根据 Content Signals Policy 在 robots.txt 中添加这样一行,用以拒绝将其页面用作 AI 回答的输入。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面;API 会返回 `blocked_by_site_policy`,且不收费。 ### 为 AI 读取网页合法吗? 这取决于内容、所在国家以及你如何使用文本。遵守 robots.txt 并远离个人数据和付费墙可以降低风险。我们的[规则概览](https://webreaderapi.com/zh/guides/is-reading-web-pages-for-ai-legal/) 总结了要点;这不构成法律建议。 ## 账户、付款与隐私 ### 我需要验证身份吗? 不需要。WebReaderAPI 不要求 ID、自拍、公司文件或银行卡。使用账号登录;邮箱为可选。[无需 KYC 页面](https://webreaderapi.com/zh/no-kyc-web-reader-api/) 说明了仍然适用的内容。 ### 我可以使用哪些加密货币付款? BTC, USDT, USDC, ETH, SOL, LTC。USDT 支持 TRC-20 或 ERC-20,USDC 支持 ERC-20。请发送显示的确切金额,点击“我已发送付款”,充值将在确认后计入余额。 ### 我可以退款吗? 可以,退到你的余额。使用量低于 20% 的积分包可在购买后 72 小时内退回,从未成功使用的积分包会全额返还积分。[退款政策](https://webreaderapi.com/zh/refunds/) 有确切规则和三个示例。 ### API 密钥如何运作? 创建多个 API 密钥,例如每个 agent 或项目一个,并可从控制台撤销其中任意一个。在 Authorization 请求头中以 Bearer token 形式发送你的 API 密钥,或在 api_key 查询参数中发送。每个应用或 agent 使用一个密钥,便于吊销某一个而不影响其他。 ### 你们会记录我的请求的哪些信息? 每个页面的主机名,绝不记录完整 URL 或其内容,另加时间、状态和积分,保留 30 天。我们不保留你读取的页面的任何副本。[隐私政策](https://webreaderapi.com/zh/privacy/) 有详细信息。 ## 开发者与 AI agent ### 有 Python 和 Node.js 的代码吗? 有。[Python](https://webreaderapi.com/zh/docs/python/) 和 [Node.js](https://webreaderapi.com/zh/docs/node/) 指南展示了单次读取、批量、整站抓取 (crawl) 和重试,[快速开始](https://webreaderapi.com/zh/docs/) 有 curl 示例。无需 SDK 包:API 就是使用 JSON 的普通 HTTPS。 ### Claude、Cursor 或其他 MCP 客户端能使用 WebReaderAPI 吗? 可以,通过你自己运行的一个小型 MCP server,详见 [MCP 页面](https://webreaderapi.com/zh/docs/mcp/)。它暴露一个工具,接收 URL 并以 Markdown 返回页面。 ### 它能与 LangChain 和 LlamaIndex 配合使用吗? 可以。[LangChain 和 LlamaIndex 页面](https://webreaderapi.com/zh/docs/langchain/) 展示了一个文档加载器,可将 URL 连同其元数据转换为文档,随时可用于分块和嵌入。 ### 我可以同时读取多少个页面? 每个账户都有同时读取页面数的上限;你的控制台会显示该上限,支持团队可将其提高。整站抓取 (crawl) 还会遵循每个站点的 `Crawl-delay`,因此对单个域名的大规模整站抓取 (crawl) 可能比其页面数量所显示的耗时更长。 ### 谁运营 WebReaderAPI? SerpGoat LLC。有关服务如何运作以及如何联系到真人,请见[关于页面](https://webreaderapi.com/zh/about/)。支持团队每周每天 12 小时内回复,包括抓取和集成方面的帮助。 ### 一次读取有多快? 这主要取决于网站以及是否需要浏览器。在通过公开样本测量出速度之前,我们不公布速度数据;一旦有了,会连同方法和日期发布在[状态页面](https://webreaderapi.com/zh/status/) 上。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # Web reader API 术语表 > 用 API 读取网页的 36 个术语表:Markdown、正文提取、JavaScript 渲染、robots.txt、Content Signals、RAG、MCP、积分等。 - URL: https://webreaderapi.com/zh/glossary/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 将网页转换为供语言模型使用的文本时会遇到的词汇,从 HTML 侧到 AI 侧,并附上每个术语在文档中相关位置的链接。 **快速回答 — 主要的 web reader API 术语是什么意思?** web reader API 会抓取页面,保留其**正文提取**内容,并以模型可读的 **Markdown** 返回。**WebReaderAPI** 在页面需要浏览器时加入 **JavaScript 渲染**,遵循 **robots.txt** 和 **Content Signals**,每页收取一个**积分**,自 2026 年 10 月起为 US$0.07/千页。以下 36 个术语解释了其余内容。 ## 从网页一侧说起 **HTML** — 网页的标记语言。原始 HTML 会把你想获取的文本与标签、脚本和样式混在一起,因此对语言模型来说可读性很差。 **DOM** — 文档对象模型(DOM):浏览器根据 HTML 构建、随后又用 JavaScript 修改的元素树。渲染后的页面是从 DOM 读取的,而不是从原始 HTML 读取。 **JavaScript 渲染** — 在浏览器中运行页面脚本,让首次响应之后加载的内容显示出来。WebReaderAPI 会在需要时执行(`render=auto`),消耗两个积分而不是一个。 **无头浏览器** — 一种没有屏幕、由软件驱动的真实浏览器引擎。服务器上正是用它来渲染 JavaScript 密集的页面。 **正文提取** — 找出读者真正要看的那部分页面内容,比如文章或文档,并排除周围的一切。在我们的 API 中,这就是 `main_content=true`,也是默认选项。 **Readability** — 既指文本的一种质量,也指一类知名算法的名称,这类算法会对页面区块打分以找出正文,就像浏览器里的阅读模式那样。 **样板内容** — 在每个页面都重复出现的文本:菜单、Cookie 提示、侧边栏、页脚、分享按钮。去掉它是网页阅读器的主要工作。 **Markdown** — 一种纯文本格式,其中 `#` 表示标题、`-` 表示列表项、`[text](url)` 表示链接。模型读取效果好,而且比 HTML 消耗的 token 少得多。 **元数据** — 关于页面本身而非正文的事实:标题、描述、作者、发布日期、语言。当页面声明了这些信息时,WebReaderAPI 会在 Markdown 旁边一并返回它们。 **PDF 提取** — 把 PDF 文件里的文本转成 Markdown。最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。 **Sitemap** — 网站用来列出其页面的 XML 文件。整站抓取 (crawl) 任务在它存在时会从它开始,从而更快、以更少的请求找到页面。 **付费墙** — 只向订阅者展示内容的屏障。WebReaderAPI 从不会读取付费墙后的内容。 ## 从爬虫的角度 **爬虫** — 为某个目的抓取网页的程序。我们的爬虫只抓取客户请求的页面,[bot 页面](https://webreaderapi.com/zh/bot/) 有相关说明。 **User-Agent** — 客户端随每次请求发送的名称。我们的是 `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`,所以网站所有者总能知道是谁在请求。 **robots.txt** — 网站根目录下的文件,告诉爬虫哪些路径可以抓取,标准为 RFC 9309。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。 **Crawl-delay** — robots.txt 中的一行,要求爬虫在两次请求之间等待若干秒。我们的整站抓取 (crawl) 任务会遵守它。 **Content Signals** — robots.txt 中诸如 `Content-Signal: search=yes, ai-input=no` 这类行的策略,用来声明网站内容可以如何使用,包括供 AI 使用。 **ai-input** — Content Signals 的一个设置,涉及将页面作为 AI 回答的输入使用。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。 **llms.txt** — 一些网站会发布在 `/llms.txt` 的 Markdown 文件,为语言模型提供其内容和关键页面的简要指南。 **整站抓取 (crawl)** — 通过跟踪链接和 sitemap 来读取同一网站的多个页面。每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay。 **批量任务** — 在一次请求中发送、在后台处理的 URL 列表。每个批量任务最多 100 个 URL。 **HTTP 403** — 服务器用来拒绝请求而发送的状态。当网站对我们的爬虫返回 403 时,API 会返回 `target_refused`,并且不收取任何费用。 **HTTP 429** — 请求过多的状态。来自网站时,表示需要放慢速度;来自我们的 API(`concurrency_limit`)时,表示你的账户已达到同时读取的上限。 **指数退避** — 每次失败后等待更久再重试(例如 1 秒、2 秒、然后 4 秒),以免给繁忙的服务器造成过多请求。 ## 从 AI 视角 **Token** — 语言模型读取和计费的单位,大致相当于一个短词或词的一部分。干净的 Markdown 比同一页面的 HTML 使用的 token 少得多。 **上下文窗口** — 模型一次能接收的文本量。`max_chars` 参数让每个页面都控制在你设定的预算之内。 **RAG** — 检索增强生成:模型根据为问题检索到的文档来作答。网页读取器从实时页面提供这些文档。 **分块** — 在建立索引之前,把长文档切分成段落。Markdown 标题提供了自然的切分点。 **嵌入** — 表示一段文字含义的数字列表,用于找出与问题相似的段落。 **向量存储** — 存储嵌入并返回与查询最接近段落的数据库,是 RAG 系统中分块网页的常见归宿。 **工具调用** — 模型请求应用运行某个函数(例如读取 URL)并使用其结果的能力。参见 [OpenAI function calling](https://webreaderapi.com/zh/docs/openai/)。 **MCP** — Model Context Protocol,一种将工具接入 Claude Desktop 或 Cursor 等 AI 客户端的标准方式。我们的 [MCP 页面](https://webreaderapi.com/zh/docs/mcp/) 展示了一个基于该 API 构建的 fetch 工具。 ## 从计费视角 **积分** — API 的使用单位。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。 **并发数** — 你的账户在同一时刻可以运行的读取数量。每个账户都有同时读取页面数的上限;你的控制台会显示该上限,支持团队可将其提高。 **KYC** — 了解你的客户:某些服务要求的身份核验,例如身份证件或自拍。WebReaderAPI 不做任何要求。 **稳定币** — 追踪美元等货币的加密货币。USDT 和 USDC 是接受充值的两种;完整币种列表见 BTC, USDT, USDC, ETH, SOL, LTC。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 如何将网页转为 Markdown 供 LLM 使用 > 2026 年如何将网页转为 Markdown 供 LLM 使用:三种方法、干净的 Markdown 保留了哪些内容、如何限制 token 数,以及将其分块的 Python 代码。 - URL: https://webreaderapi.com/zh/guides/convert-web-page-to-markdown/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 复制粘贴适用于单个页面。如果你运行自己的爬虫,库就可以胜任。当你希望每页一次请求时,API 就可以胜任。下面介绍如何选择、好的输出长什么样,以及可复用的代码。 **快速回答 — 如何将网页转为 Markdown 供 LLM 使用?** 抓取页面,只保留正文,然后把标题、列表、表格和链接转换为 Markdown,并将长度控制在你模型的预算之内。你可以手动完成、使用开源库完成,或通过一次 API 调用完成:**WebReaderAPI** 返回 Markdown 和元数据,每页一个积分,自 2026 年 10 月起为 US$0.07/千页。无需 KYC;加密货币支付。 ## 从网页获取 Markdown 的三种方式 | 属性 | 值 | | --- | --- | | 手动 | 从浏览器或其阅读器视图复制文本;适用于少量页面 | | 开源库 | 在你自己的抓取器中使用 Readability、Trafilatura、MarkItDown 或 Crawl4AI | | 网页读取 API | `GET 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 并按标题拆分成块* ```python 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](https://webreaderapi.com/zh/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. [推出面向 agent 的 Markdown](https://blog.cloudflare.com/markdown-for-agents/) — Cloudflare (2026-02-12) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 为 AI 读取网页合法吗?2026 年带日期的事实 > 2026 年,为 AI agent 和 RAG 读取网页合法吗?EU 退出规则、关于 robots.txt 的 GPAI 行为准则,以及美国进行中的案件。非法律建议。 - URL: https://webreaderapi.com/zh/guides/is-reading-web-pages-for-ai-legal/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 没有单一答案,且多起案件仍未结案。本页列出用 AI 工具读取公开页面所涉及的重要规则与法院事件,附日期和来源,以及我方采取的做法。这不是法律建议。 **快速回答 — 用 AI 工具读取网页合法吗?** 读取公开页面被广泛实践,但规则取决于国家、内容以及访问方式。在 EU,像 robots.txt 这样的机器可读退出机制会限制文本和数据挖掘。在美国,2025–2026 年有多起关于 AI 与自动化访问的案件尚未结案,没有最终判决。**WebReaderAPI** 尊重 robots.txt 和 AI 退出机制;无需 KYC,支持加密货币。非法律建议。 ## 关键日期 | 属性 | 值 | | --- | --- | | 2019 年 4 月 17 日 | EU DSM 指令第 4(3) 条:商业性文本和数据挖掘可通过机器可读方式保留 | | 2025 年 7 月 10 日 | EU GPAI 行为准则:签署方承诺其爬虫会读取并遵守 robots.txt | | 2025年12月5日 | 《纽约时报》就 Perplexity 检索其内容提起诉讼(指控) | | 2026年7月31日 | Reddit 诉 SerpApi 和 Perplexity:DMCA §1201(a) 主张通过了驳回动议(指控) | | 报道于2026年8月5日 | 第九巡回法院撤销了 Amazon 对 Perplexity 的 Comet agent 的禁令 | ## 欧盟法律对读取网页内容是怎么规定的? 欧盟法律允许对合法可访问的内容进行文本和数据挖掘,但允许权利人保留该权利。DSM 指令(2019/790)第 4(3) 条规定,商业例外仅在未被“以适当方式,例如机器可读手段”明确保留的情况下适用于在线发布的内容。 欧盟《人工智能法案》针对通用人工智能模型的行为准则于 2025年7月10日发布,对其签署方提出了更进一步的要求。他们承诺其爬虫会读取并遵守 robots.txt,以及遵守其他适当的机器可读协议。这就是为什么遵守 robots.txt 和已声明的 AI 偏好已成为欧洲使用的基线。 ## 哪些美国案件重要,它们进展如何? 目前没有任何案件就读取公开页面用于 AI 作出最终判决。以下为迄今的事实,除法院已裁决者外,均为指控: - **Reddit 诉 SerpApi、Perplexity 等(S.D.N.Y.)。** 2026年7月31日,法院在诉答阶段允许依据 DMCA §1201(a) 提出的主张继续进行,将 Google 基于挑战的保护视为控制访问的措施。尚无被告被认定承担责任。 - **《纽约时报》诉 Perplexity。** 于2025年12月5日提起。《纽约时报》指控 Perplexity 在其已于 robots.txt 中屏蔽后,仍在查询时检索其内容。 - **Amazon 诉 Perplexity。** 据2026年8月5日报道,第九巡回法院撤销了对 Perplexity 的 Comet 购物 agent 的禁令,指出该助手是按照其用户的指令行事。合议庭表示并未为 agentic AI 设定宽泛规则。 方向不一,上诉仍在继续。任何总结,包括本总结,均应视为有时效性。 ## 当 AI 工具读取页面时,什么能降低风险? 上述每条规则和每个案件中都会提到几种做法: - **只读取公开页面。** 不登录、不进入会员区、不绕过付费墙。 - **遵守机器可读的退出声明。** robots.txt 和已声明的 AI 偏好,例如 `ai-input=no`。 - **绝不破解保护措施。** 不伪装 User-Agent、不轮换地址以逃避封锁、不破解挑战。 - **避免个人数据。** 不收集关于私人个人的画像、联系方式或其他数据。 - **注明来源。** 为每个页面保留 URL,并在答案依赖该页面时展示出来。 这些是良好实践,并非保证。请就你的具体用例咨询律师。 ## WebReaderAPI 在自己这边做了什么? 我们围绕这些实践构建了该服务。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 我们的[可接受使用政策](https://webreaderapi.com/zh/acceptable-use/)禁止收集关于私人个人的个人数据,以及读取登录或付费墙后的内容。每个请求都以 `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` 标识自己,我们的[爬虫页面](https://webreaderapi.com/zh/bot/)告诉网站所有者如何联系我们。 ## 法律问题 ### 遵守 robots.txt 就能让我的使用合法吗? 仅凭这一点不能。它回答了欧盟的退出问题并体现了善意,但版权、合同、隐私法以及各网站的条款仍然适用。这不构成法律建议。 ### 我可以存储读取的页面吗? 这取决于内容、你的目的和你的司法管辖区。WebReaderAPI 不会保留为你读取的页面的任何副本;你在自己这边存储什么由你决定并负责。 ### 为单个用户读取页面与抓取网站不同吗? 一些供应商和一个上诉合议庭已将用户指令的 agent 与爬虫区别对待。法律尚无定论,因此 WebReaderAPI 对两者适用相同的 robots.txt 规则。 ### 在哪里可以了解更多? 我们的[robots.txt 指南](https://webreaderapi.com/zh/guides/robots-txt-for-ai-agents/)涵盖了相关标准,下面的来源链接到文本和报告。针对你自己的情况,请咨询你所在司法管辖区的律师。 ## 来源 1. [指令 (EU) 2019/790 第 4 条](https://www.legislation.gov.uk/eudr/2019/790/article/4) — legislation.gov.uk (read 2026-10-22) 2. [AI 办公室发布通用人工智能模型行为准则最终版](https://www.globalpolicywatch.com/2025/07/ai-office-publishes-final-version-of-the-code-of-practice-for-general-purpose-ai-models/) — Global Policy Watch (2025-07) 3. [Reddit 诉 SerpApi LLC](https://www.loeb.com/en/insights/publications/2026/08/reddit-v-serpapi-llc) — Loeb & Loeb (2026-08) 4. [《纽约时报》起诉 AI 搜索引擎 Perplexity](https://the-decoder.com/nyt-sues-ai-search-engine-perplexity-for-alleged-content-misuse/) — The Decoder (read 2026-10-22) 5. [美国法院推翻针对 Perplexity 的 Amazon 禁令](https://www.retail-insight-network.com/news/us-court-overturns-amazon-injunction-perplexity/) — Retail Insight Network (2026-08-05) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # llms.txt 生成器:通过抓取你自己的网站来生成文件 > 通过抓取为你自己的网站生成 llms.txt 文件:一个 Python 脚本,将每个页面读取为 Markdown,并用一行摘要列出。2026年数据。 - URL: https://webreaderapi.com/zh/guides/llms-txt-generator/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) llms.txt 文件以模型易于读取的 Markdown 列出网站的关键页面,每页一行说明。本指南给出真实的采用数据,然后提供一个抓取你的网站并为你写出该文件的脚本。 **快速回答 — 如何为我的网站生成 llms.txt 文件?** 抓取你自己的网站,取每个页面的标题和第一段,在 `/llms.txt` 的文件中以你网站的名称作为标题,将它们写成 Markdown 列表。**WebReaderAPI** 负责抓取:每个作业最多10,000个页面,输出带元数据的 Markdown,截至2026年10月,从 US$0.07/千页 起每页一积分。下面的 Python 脚本会写出该文件。无需 KYC;加密货币支付。 ## llms.txt 简要说明 | 属性 | 值 | | --- | --- | | 它是什么 | 一个提议放在网站根目录的 Markdown 文件,为语言模型列出其关键页面 | | 采用情况,前1,000个网站 | 2026年9月18日为9.3%(93个网站),数据来自 Rankability | | 包含该文件的网站 | 据 Originality.ai 统计,从 2025 年 6 月到 2026 年 5 月,数量从 4,088 增至 36,120 | | 实测使用情况 | 在 Ahrefs 针对 137,000 个域名的研究中,97% 的 llms.txt 文件收到的请求数为零 | | 使用 WebReaderAPI 构建的成本 | 每抓取一页消耗 1 个积分;10,000 个网页 成本 US$3.75 | ## llms.txt 值得做吗? 做起来成本不高,但迄今为止实测效果很小。采用率在上升:Rankability 在 2026 年 9 月 18 日于排名前 1,000 的网站中有 9.3% 发现了该文件,而 2025 年 6 月为 0.3%,不过两次统计之间其方法有所变化。Originality.ai 统计了包含该文件的网站,从 2025 年 6 月到 2026 年 5 月,数量从 4,088 增至 36,120。 使用情况则是另一回事。据 PPC Land 于 2026 年 7 月 2 日报道,Ahrefs 针对 137,000 个域名的研究发现,97% 的 llms.txt 文件完全没有收到任何请求,而在这些文件收到的请求中,AI 检索机器人仅占 1.1%。如果你的文档规模很大,并且想要一个清晰的索引,那就做一个;但不要指望它本身就能改变助手如何引用你的网站。 ## llms.txt 文件里包含什么? 一个标题、一段摘要,然后是分组的链接列表,每条链接附有简短描述。一个最小化的文件如下所示: - 第一行为 `# Example Docs`,即网站或项目的名称。 - `> One sentence on what the site covers.` 作为带引号的摘要。 - `## Guides`、`## API reference` 及其他分段,每个分段对应网站的一部分。 - 每个页面使用 `- [Page title](https://example.com/page): one line on what the page answers.`。 描述要保持事实性且简短。不要在文件中写入给 AI 系统的指令;助手们越来越将此类文本视为操纵。 *Python:抓取你自己的网站并生成 llms.txt* ```python import os import time from collections import defaultdict from urllib.parse import urlparse import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} SITE = "https://docs.example.com/" def first_paragraph(markdown): for block in markdown.split("\n\n"): block = block.strip() if block and not block.startswith(("#", "-", "|", "!", ">")): return " ".join(block.split())[:160] return "" job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 300}, timeout=60).json() pages, cursor, delay = [], None, 5 while True: params = {"cursor": cursor} if cursor else {} batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() pages += [p for p in batch.get("results", []) if "markdown" in p] cursor = batch.get("next_cursor") if batch["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) sections = defaultdict(list) for p in pages: path = urlparse(p["final_url"]).path.strip("/") section = path.split("/")[0].replace("-", " ").title() if path else "Home" summary = p.get("description") or first_paragraph(p["markdown"]) sections[section].append("- [" + p["title"] + "](" + p["final_url"] + "): " + summary) lines = ["# Example Docs", "", "> Documentation for the Example product.", ""] for name in sorted(sections): lines += ["## " + name, ""] + sorted(sections[name]) + [""] with open("llms.txt", "w", encoding="utf-8") as fh: fh.write("\n".join(lines)) print(len(pages), "pages written to llms.txt") ``` ## 这个脚本是如何工作的? 它会启动一个整站抓取 (crawl) 任务,逐页收集结果,然后按页面路径的第一级文件夹对页面进行分组。对于每个页面,如果网站提供了 meta description,就使用它;否则使用 Markdown 的第一段,截取到 160 个字符。 修改 `SITE`、标题行和摘要行以匹配你的项目,对于更大的网站,可以调高 `limit`,每个任务最多 10,000 页。在发布之前审核输出内容:分段名称来自你的 URL 结构,可能需要人工调整。 ## 我的 robots.txt 需要允许这次抓取吗? 需要。WebReaderAPI 只读取 robots.txt 允许 `WebReaderAPI` 或所有机器人访问的内容,并且会等待你设置的任何 `Crawl-delay`。如果你自己的网站屏蔽了机器人,请添加一个分组,在抓取期间允许我们的 token;我们的 [爬虫页面](https://webreaderapi.com/zh/bot/) 展示了确切的代码行。 robots.txt 不允许的页面会被跳过且不计费,因此严格的 robots.txt 不会让你多花任何费用;它只是让这些页面不出现在 llms.txt 中。 ## 费用是多少? 每读取一页消耗 1 个积分,需要无头浏览器的页面消耗 2 个积分。一个 300 页的文档网站消耗 300 个积分,如果是 JavaScript 应用则最多消耗 600 个积分。截至 2026 年 10 月,这可以轻松容纳在 US$3.75 的 10,000 个网页 中,剩余的积分会留在你的账户中:它们永不过期。 当你的文档变更时,重新生成该文件。如果你保留了抓取输出,可以使用批处理任务仅重新读取变更的页面,而不必再次抓取所有内容。 ## llms.txt:常见问题 ### 我应该把 llms.txt 文件放在哪里? 放在网站根目录,使其通过 `/llms.txt` 以纯文本或 Markdown 形式提供。有些网站还会发布包含所列页面全文的 `llms-full.txt`。 ### llms.txt 会取代 robots.txt 吗? 不会。robots.txt 说明机器人应跳过哪些路径;llms.txt 列出你希望模型找到的页面。两者都要保留。我们的 [robots.txt 指南](https://webreaderapi.com/zh/guides/robots-txt-for-ai-agents/) 解释了二者的区别。 ### llms.txt 会让 ChatGPT 或 Claude 引用我的网站吗? 没有证据表明它本身就能做到这一点。据 2026 年 7 月报道的 Ahrefs 研究发现,97% 的文件没有收到任何请求。带有直接答案和标注日期事实的清晰页面更为重要。 ### 我可以为别人的网站生成 llms.txt 吗? 仅限你自己的网站,或在所有者同意的情况下。该文件代表网站发声,因此应由网站所有者发布。 ## 来源 1. [llms.txt 采用数据](https://www.rankability.com/data/llms-txt-adoption/) — Rankability (2026-09-18) 2. [llms.txt 采用率增长 8.8 倍,但 97% 的文件零 AI 请求](https://ppc.land/llms-txt-adoption-rises-8-8x-but-97-of-files-get-zero-ai-requests/) — PPC Land (2026-07-02) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 面向 AI 代理和抓取器的 robots.txt:2026 年适用规则 > 2026 年面向 AI 代理的 robots.txt:爬虫与用户触发的抓取器、OpenAI、Anthropic、Google 和 Perplexity 各自的说法、Content Signals、aipref 和 RSL。 - URL: https://webreaderapi.com/zh/guides/robots-txt-for-ai-agents/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) robots.txt 最初是为爬虫编写的,后来出现了因用户请求而抓取页面的 AI 代理。如今各厂商对此划定的界限各不相同。本指南阐述了该标准、各厂商公开声明的政策、较新的信号,以及我们自己的爬虫如何行为。 **快速回答 — AI 代理必须遵守 robots.txt 吗?** 这取决于厂商。robots.txt 是一项自愿性标准(RFC 9309,2022 年 9 月)。构建索引的爬虫通常遵守它;对于用户触发的抓取,OpenAI 表示其规则可能不适用,Google 和 Perplexity 表示其抓取器通常忽略这些规则,而 Anthropic 表示其机器人会遵守。**WebReaderAPI** 在每次读取时都遵守 robots.txt,无需 KYC,使用加密货币支付。 ## 2026 年 10 月的 robots.txt 与 AI | 属性 | 值 | | --- | --- | | 标准 | RFC 9309,Robots 排除协议,2022 年 9 月 | | OpenAI ChatGPT-User | robots.txt 规则对用户发起的操作"可能不适用" | | Anthropic(含 Claude-User) | 称其机器人遵守 robots.txt 指令,包括 Crawl-delay | | Google 用户触发的抓取器 | “通常忽略 robots.txt 规则”(页面更新于 2026-08-19) | | Perplexity-User | “通常忽略 robots.txt 规则” | | Content Signals | Cloudflare 2025 年 9 月 24 日的策略:`search`、`ai-input`、`ai-train` | | IETF AI preferences | 工作组草案,尚未成为 RFC | | WebReaderAPI | 每次读取都遵守 robots.txt 和 `ai-input=no`;token `WebReaderAPI` | ## robots.txt 到底起什么作用? 它告诉自动化客户端,网站希望它们跳过哪些路径。该文件位于主机根目录,按 user-agent token 分组规则,并使用 `Allow` 和 `Disallow` 行。2022 年 9 月发布的 RFC 9309 将这一长期惯例变成了标准。 RFC 明确指出,该文件并不锁定任何东西:“这些规则不是一种访问授权。”遵守是自愿的。这就是为什么各厂商声明的策略很重要,也是为什么想要硬性限制的网站还会使用防火墙和机器人管理。 ## 为什么爬虫和用户触发的抓取器不同? 爬虫自行决定访问哪些页面;用户触发的抓取器则是因为有人要求而访问某个页面。许多厂商把第二种情况当作代表其用户行动的浏览器,并表示 robots.txt 并不完全适用。 | 抓取器 | 声明策略(读取于 2026-10-22) | |---|---| | OpenAI ChatGPT-User | robots.txt 规则“可能不适用”于用户发起的操作;网站被指引到 OAI-SearchBot 以选择退出搜索 | | Anthropic Claude-User | Anthropic 称其机器人遵守 robots.txt 指令;屏蔽 Claude-User 会阻止对用户查询的检索 | | Google 用户触发的抓取器 | “通常忽略 robots.txt 规则”,因为抓取是用户请求的 | | Perplexity-User | 出于同样原因“通常忽略 robots.txt 规则” | | MCP reference fetch server | 默认对模型发起的抓取遵守 robots.txt,对用户发起的抓取不遵守 | 这种区分是真实存在且有文档记录的。如果你构建 agent,就要决定你站在哪一边,并在你的 user agent 和文档中说明。 ## Content Signals、aipref 和 RSL 是什么? 它们是更新的一些方式,用来表明 AI 系统可以如何处理内容,而不只是机器人是否可以抓取内容。 - **Content Signals。** Cloudflare 于 2025 年 9 月 24 日发布了这一策略。robots.txt 可以声明 `search`、`ai-input`(用作 AI 答案的输入,例如 grounding)和 `ai-train`。Cloudflare 托管的 robots.txt 默认提供 `search=yes, ai-train=no`。 - **IETF AI preferences(aipref)。** 该工作组的词汇表和附件草案在 2026 年 10 月仍是 Internet-Draft,拟作为 Proposed Standard。 - **Web Bot Auth。** 一种让机器人对其请求签名的方式;IETF 工作组于 2026 年 9 月 1 日通过了其协议草案。 - **RSL(Really Simple Licensing)。** 其网站称 RSL 1.0 规范已可用;它让发布者可以通过 robots.txt、headers 或 RSS 声明许可条款,包括按抓取付费。 ## llms.txt 和 robots.txt 是一回事吗? 不是。robots.txt 说明不要抓取什么;llms.txt 是一个提议的文件,列出网站为语言模型准备的关键页面。采用率在增长,但实测使用率很低。Rankability 在 2026 年 9 月 18 日统计了前 1,000 个网站,其中 9.3% 有 llms.txt。PPC Land 于 2026 年 7 月 2 日报道的一项 Ahrefs 对 137,000 个域名的研究发现,97% 的 llms.txt 文件完全没有收到任何请求。 我们的 [llms.txt 指南](https://webreaderapi.com/zh/guides/llms-txt-generator/) 介绍了如何通过抓取你自己的网站来构建一个,如果你还是想要的话。 ## WebReaderAPI 如何处理 robots.txt? 它在每次读取时都遵守 robots.txt,包括客户触发的读取。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。对于整站抓取任务,它还会等待网站设置的 `Crawl-delay`。 每个请求都带有相同的 User-Agent,`WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`,因此网站所有者可以在日志中看到我们,并为我们编写规则。我们的 [爬虫页面](https://webreaderapi.com/zh/bot/) 提供了详细信息以及遇到问题时的联系方式。 *WebReaderAPI 的 robots.txt 示例* ```text # Block WebReaderAPI from the whole site User-agent: WebReaderAPI Disallow: / # Or: allow it, but keep it out of one folder and slow it down User-agent: WebReaderAPI Disallow: /account/ Crawl-delay: 5 # Or: allow reading for search, but not as AI input (Content Signals) User-agent: * Content-Signal: search=yes, ai-input=no Allow: / ``` ## 面向 AI 的 robots.txt:常见问题 ### 屏蔽 GPTBot 能阻止 ChatGPT 因用户请求读取我的页面吗? 不一定。OpenAI 记录了几个独立的 token:GPTBot 用于训练,OAI-SearchBot 用于搜索,ChatGPT-User 用于用户操作,并表示 robots.txt 规则可能不适用于用户发起的操作。请查看各厂商当前的文档。 ### robots.txt 具有法律约束力吗? 本身没有;RFC 9309 表示它不是访问授权。在欧盟,根据 DSM 指令,机器可读的退出声明对文本和数据挖掘很重要。参见我们的 [法律概览](https://webreaderapi.com/zh/guides/is-reading-web-pages-for-ai-legal/);这不是法律建议。 ### 如何屏蔽 WebReaderAPI? 在你的 robots.txt 中添加一个包含 `Disallow: /` 的 `User-agent: WebReaderAPI` 组。我们的读取会在每个页面之前检查它;不允许的页面绝不会被读取。 ### WebReaderAPI 会读取标注 ai-input=no 的页面吗? 不会。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。API 会向客户返回 `403 blocked_by_site_policy`,且不收费。 ## 来源 1. [RFC 9309:Robots Exclusion Protocol](https://www.rfc-editor.org/rfc/rfc9309.html) — RFC Editor (September 2022) 2. [OpenAI 爬虫概览](https://developers.openai.com/api/docs/bots) — OpenAI (read 2026-10-22) 3. [Anthropic 会从网络抓取数据吗,网站所有者如何屏蔽该爬虫?](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler) — Anthropic (2026-04-07) 4. [Google 用户触发的抓取器](https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers) — Google (updated 2026-08-19) 5. [Perplexity 爬虫](https://docs.perplexity.ai/guides/bots) — Perplexity (read 2026-10-22) 6. [MCP fetch server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) — Model Context Protocol (read 2026-10-22) 7. [Content Signals Policy](https://blog.cloudflare.com/content-signals-policy/) — Cloudflare (2025-09-24) 8. [AI Preferences 工作组文档](https://datatracker.ietf.org/wg/aipref/documents/) — IETF (read 2026-10-22) 9. [Web Bot Auth 工作组文档](https://datatracker.ietf.org/wg/webbotauth/documents/) — IETF (read 2026-10-22) 10. [Really Simple Licensing](https://rslstandard.org/) — rslstandard.org (read 2026-10-22) 11. [llms.txt 采用数据](https://www.rankability.com/data/llms-txt-adoption/) — Rankability (2026-09-18) 12. [llms.txt 采用率增长 8.8 倍,但 97% 的文件零 AI 请求](https://ppc.land/llms-txt-adoption-rises-8-8x-but-97-of-files-get-zero-ai-requests/) — PPC Land (2026-07-02) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 为什么 AI agent 抓取网页时会遇到 403 错误 > 为什么 2026 年 Claude Code、OpenClaw 和其他 AI agent 中的网页抓取会因 403 失败:Cloudflare 默认设置、robots.txt、rate limit、JavaScript,以及该怎么办。 - URL: https://webreaderapi.com/zh/guides/web-fetch-403-errors/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 403 是网站在说“不”。自 2025 年起,越来越多的网站默认对 AI agent 说“不”;自 2026 年 9 月起,Cloudflare 在许多新的广告支持网站上屏蔽 agent 流量。下面说明如何区分各种原因,以及你可以正当做些什么。 **快速回答 — 为什么我的 AI agent 抓取页面时会收到 403?** 通常是因为网站或其 CDN 拒绝自动化流量或 AI 流量。自 2025 年 7 月 1 日起,Cloudflare 对新域名默认屏蔽 AI 爬虫;自 2026 年 9 月 15 日起,对新域名的广告支持页面屏蔽 "Agent" 流量。其他原因包括 rate limit 和登录墙。解决办法是获得许可,而不是伪装。**WebReaderAPI** 返回网站的答复,不扣费;无需 KYC,加密货币支付。 ## 网页抓取失败的常见原因 | 属性 | 值 | | --- | --- | | 来自 CDN 的 403 | 许多网站的 bot 管理默认屏蔽 AI 爬虫或 agent | | 来自网站的 403 或 401 | 登录墙、会员区、地区规则,或对已知 agent 的硬性屏蔽 | | 429 | 短时间内请求过多;网站正在对你限流 | | 402 | 网站要求付费,例如通过 Cloudflare pay per crawl | | 返回 200 但正文为空 | 页面用 JavaScript 构建内容;这不是错误,但没东西可读 | | 抓取前就被拒绝 | 你自己的工具遵守了 robots.txt,跳过了该页面 | ## 2025 和 2026 年网络上发生了什么变化? 大型基础设施提供商把 AI 屏蔽变成了默认设置。三项有日期的变化解释了大多数新增的 403: - **2025 年 7 月 1 日:** Cloudflare 表示现已默认屏蔽 AI 爬虫,并在每个新域名注册时询问是否允许。同一天它推出了 pay per crawl 的私测版,以 HTTP 402 和价格作答。 - **2026 年 7 月 1 日:** Cloudflare 引入了三类 AI 流量:Search、Agent 和 Training。"Agent" 明确包含 ChatGPT-User 等聊天抓取器。 - **2026 年 9 月 15 日:** 对新域名,Cloudflare 的预设会在展示广告的页面上屏蔽 Training 和 Agent 流量;Search 仍被允许。 为用户抓取页面的 agent 属于 Agent 类别。在 2026 年 9 月之后接入的广告支持网站上,请预期被拒绝。 ## 如何区分屏蔽和 bug? 先看状态码和响应体,再改动任何东西。 | 你看到的 | 可能的含义 | 下一步 | |---|---|---| | 403 加挑战页或 "access denied" 页面 | 网站或其 CDN 拒绝自动化流量 | 尊重它;寻找 API 或申请访问 | | 402 加价格 header | 网站按请求出售访问权 | 决定是否通过其渠道付费 | | 429 | 你发送了过多请求 | 放慢速度,稍后用 backoff 重试 | | 401,或登录页 | 内容需要账号 | 超出公共 reader 的范围 | | 200 但几乎没有文本 | 内容由 JavaScript 构建 | 在浏览器中渲染页面 | | 你的工具提示 robots.txt 不允许 | 网站要求 robots 跳过 | 尊重它 | 只有 429 和空的 JavaScript 页面是你可以在自己这边解决的技术问题。其余都是网站所有者做出的决定。 ## agent 开发者可以正当做些什么? 与网站合作,而不是绕过它。以下步骤能解决许多失败,并让你的 agent 站在网站所有者一边: 1. **使用网站自己的渠道。** 许多网站提供 API、RSS 或 Atom feed,或包含你所需内容的 sitemap。 2. **申请访问。** 网站所有者可以在 robots.txt 或 CDN 设置中允许指定 bot。清晰的 User-Agent 和联系页面能让这件事变得容易。 3. **渲染被允许但为空的页面。** 对只有 JavaScript 的页面,使用运行无头浏览器的 reader。 4. **放慢速度并缓存。** 同一页面只读一次并存储,尊重 `Crawl-delay` 和 429 响应。 5. **在网站出售访问权的地方付费。** 402 是一个报价;通过网站渠道接受,或干脆不读该页面。 这些做法都让网站所有者保持控制,也正是让你的 agent 长期有用的原因。 ## 为了绕过拒绝,我绝对不能做什么? 绝不伪装 agent 或破解保护。伪造浏览器的 User-Agent、轮换 IP 地址以逃避屏蔽,或破解挑战页面,会把一个礼貌的客户端变成专为攻破访问控制而打造的工具。2026 年,美国两家法院在关于自动化访问搜索结果的诉讼中,将此类技术视为规避。案件仍未结,尚未有定论,但风险并非理论上的。 这也会破坏与你的用户所依赖的网站之间的信任。拒绝是一种信息:记录下来,告诉用户该页面不可用,然后转向其他来源。 ## 当网站拒绝时,内置抓取工具会怎么做? 大多数会把错误返回给模型,模型再告诉用户它无法读取该页面。OpenClaw 的文档(查阅于 2026 年 10 月 22 日)称,其内置的 web_fetch 使用 Readability 提取内容,不运行 JavaScript,输出上限为 20,000 个字符;它可以回退到 fetch provider,插件可注册新的 provider。MCP reference fetch server 对模型发起的抓取默认遵守 robots.txt。 当这些工具在允许 robots 但需要 JavaScript 的页面上失败时,能渲染页面的 reader 会有帮助。当它们因网站拒绝而失败时,任何工具都不应改变这个答复。 ## 当网站拒绝时,WebReaderAPI 返回什么? 它会清楚地返回拒绝结果,且不向你收费。被 robots.txt 禁止的页面返回 `403 blocked_by_robots`。声明 `ai-input=no` 的网站返回 `403 blocked_by_site_policy`。以任何其他方式拒绝请求的网站返回 `502 target_refused`,并在 `target_status` 中给出网站自己的状态码。 如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。你的 agent 可以准确告诉用户页面为何被跳过。[错误页面](https://webreaderapi.com/zh/docs/errors/) 列出了每个代码及各自的 retry 规则。 ## 网页抓取错误:常见问题 ### 为什么页面在我的浏览器中能打开,在我的 agent 中却失败? 因为网站区别对待人和自动化客户端。bot 管理可以允许浏览器而拒绝 agent,有些网站还默认屏蔽 AI 流量。页面对读者是公开的,对机器人则未必。 ### 重试能解决 403 吗? 很少能。403 是一个决定,而非故障。对 429、超时和网络错误用指数 backoff 重试;把 403 视为最终结果,除非网站所有者改变它。 ### WebReaderAPI 能读取我的 agent 读不了的页面吗? 只能读取那些允许 robots 但需要浏览器才能显示文本的页面,因为 WebReaderAPI 在需要时会渲染 JavaScript。它无法读取网站拒绝的页面,也不会去尝试。 ### 如何让我的 bot 在某网站上被允许? 使用稳定、描述性的 User-Agent 并附上联系 URL,遵守 robots.txt,保持低请求速率,并向所有者申请。Web Bot Auth 等签名 agent 方案可让网站验证你的身份。 ## 来源 1. [新闻稿:AI 爬虫被默认屏蔽](https://www.cloudflare.com/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/) — Cloudflare (2025-07-01) 2. [推出按抓取量付费](https://blog.cloudflare.com/introducing-pay-per-crawl/) — Cloudflare (2025-07-01) 3. [博客:搜索、Agent 与训练流量选项](https://blog.cloudflare.com/content-independence-day-ai-options/) — Cloudflare (2026-07-01) 4. [博客:AI 爬虫与 Agent 的新默认设置](https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/) — Cloudflare (2026-09-15) 5. [网页抓取工具](https://docs.openclaw.ai/tools/web-fetch.md) — OpenClaw (read 2026-10-22) 6. [MCP fetch server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) — Model Context Protocol (read 2026-10-22) 7. [Reddit 诉 SerpApi LLC](https://www.loeb.com/en/insights/publications/2026/08/reddit-v-serpapi-llc) — Loeb & Loeb (2026-08) 8. [Google 对 SerpApi 的诉讼被驳回](https://seroundtable.com/google-lawsuit-serpapi-dismissed-41731.html) — Search Engine Roundtable (2026-07-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 什么是网页读取 API?输入 URL,输出可读的 Markdown > 网页读取 API 的作用:输入一个 URL,页面的主要内容以干净的 Markdown 输出,供 LLM 使用。它与网页抓取及搜索 API 有何不同。 - URL: https://webreaderapi.com/zh/guides/what-is-a-web-reader-api/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 网页读取 API 把为人类阅读而设计的页面转换成模型可用的文本。本指南逐步说明它的作用、它与网页抓取 API 和搜索 API 的关系,以及市场如何定价。 **快速回答 — 什么是网页读取 API?** 网页读取 API 是一种服务:接收一个 URL,加载页面,并返回其正文内容为干净的文本(通常是 Markdown),附带标题、作者和日期等元数据。AI agent 和 RAG pipeline 用它来替代原始 HTML。**WebReaderAPI** 就是其中之一:每页消耗 1 积分,截至 2026 年 10 月价格自 US$0.07/千页 起,遵守 robots.txt,无需 KYC,支持加密货币支付。 ## 网页读取 API 一览表 | 属性 | 值 | | --- | --- | | 输入 | 公开网页或 PDF 的 URL | | 输出 | 正文内容的 Markdown 或纯文本,附带标题、作者、日期和语言 | | 移除内容 | 导航、cookie 横幅、广告、侧边栏、页脚、脚本和样式 | | JavaScript 页面 | 当原始 HTML 文本过少时,用无头浏览器进行渲染 | | 常见计费方式 | 按页或按积分计费;部分服务商按输出的 token 计费 | | 请求示例 | `GET https://webreaderapi.com/api/v1/read?url=https://example.com/post` | ## 网页读取 API 具体分几步完成什么工作? 它在一次调用中完成每个页面转文本 pipeline 都需要的五项工作: 1. **检查许可。** 谨慎的读取器在抓取任何内容之前,会先查看该站点 robots.txt 中针对自身名称和所有爬虫的规则。 2. **抓取页面。** 下载 HTML,跟随重定向,并在超时后停止。 3. **按需渲染。** 如果 HTML 只是由 JavaScript 填充的空壳,它在无头浏览器中加载页面并读取结果。 4. **提取正文。** 一个类似 readability 的步骤找出文章或文档正文,并丢弃周围与正文无关的页面元素。 5. **转换与描述。** 将内容写为 Markdown,并添加元数据:标题、作者、发布日期、语言和字数。 调用方会得到一个包含 Markdown 的 JSON 对象。模型可以直接读取,pipeline 也可以将其切分为多个块存入向量数据库。 ## 为什么模型需要 Markdown 而不是 HTML? 因为 HTML 页面的大部分内容并非正文。菜单、script 标签、跟踪代码和布局标记会消耗模型必须读取、而你需要付费的 token。Markdown 保留了承载意义的部分:标题、列表、表格、链接和强调。 Cloudflare 在 2026 年 2 月 12 日推出“Markdown for Agents”功能时给出了一个具体例子:一个页面的 token 从 HTML 的 16,180 个减少到 Markdown 的 3,150 个,约减少 80%。结果因页面而异,但大多数文章和文档页面的趋势是一致的。 ## 网页读取 API 与网页抓取 API 有何不同? 网页抓取 API 返回服务器发送的内容;读取器返回的是用户会读到的东西。网页抓取 API 为大规模抓取页面而构建,通常用于提取价格或产品名称等特定字段,通常返回原始 HTML 或你定义的结构化 JSON。 网页读取器范围更窄、更有主见。它决定什么是正文,移除其余部分并输出干净的文本。当下一个消费者是语言模型、搜索索引或阅读摘要的人时,这是合适的工具。当你需要产品网格的每个字段时,它就不合适了;那种情况你需要完整 HTML 或基于 schema 的提取。 ## 它与搜索 API 有何不同? 搜索 API 回答“哪些页面谈到这个?”;读取器回答“这个页面说了什么?”。搜索针对一个查询返回带标题和摘要的 URL 列表。读取器接收其中一个 URL 并返回其全文。 Agent 经常把两者串联起来:先用搜索找到候选页面,然后读取最好的三四个页面并带引用作答。将步骤分开可以让你选择读取多少页面,从而节省 token 和积分。 ## 我可以用开源工具代替 API 吗? 可以,许多团队就是这样起步的。Mozilla 的 Readability 在浏览器环境中提取页面正文;Trafilatura 在 Python 中做提取;Microsoft 的 MarkItDown 将包括 PDF 在内的文档转换为 Markdown;Crawl4AI 结合了整站抓取 (crawl) 和 Markdown 输出。 库只是简单的一部分。在生产环境中运行它意味着要为 JavaScript 页面托管无头浏览器、检查 robots.txt、处理超时、重定向和字符集、转换 PDF,并保持所有部分都已打补丁。当你宁愿按页付费也不愿运行这套机制时,API 值得;当流量稳定且你有时间运维时,库值得。 ## 网页读取 API 如何计费? 2026 年常见三种计费模式。基于积分(credit)的方案每页收取固定数量的积分:Firecrawl 的定价页(2026 年 10 月 22 日查看)计算为每抓取一页 1 积分,使用其 JSON 格式每页另加 4 积分。按 token 计费对返回的文本收费:Jina Reader 自 2025 年 5 月 6 日起采用这种计费方式,并为每个新密钥提供 1000 万免费 token。月度方案在每个周期重置积分,而预付包则保留积分。 WebReaderAPI 使用永不过期的预付积分:1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。截至 2026 年 10 月,10,000 个网页 花费 US$3.75,在 5,000,000 个网页 时费率降至 US$0.07/千页。 ## 选择网页读取 API 之前应该检查什么? 用你自己的二十个 URL 测试它,并关注六点: - **提取质量。** Markdown 是否保留文章并丢弃其余部分,包括表格和代码块? - **JavaScript。** 在浏览器中构建的页面是否返回文本,渲染成本是多少? - **PDF。** 是否支持,页面如何计数? - **站点所有者的选择。** 服务是否遵守 robots.txt 和声明的 AI 偏好,并在文档中说明? - **失败情况。** 失败和被拒绝的页面是否收费? - **预算控制。** 你能限制每个页面的长度吗,积分会过期吗? 我们的[网页读取 API 价格对比](https://webreaderapi.com/zh/compare/web-reader-api-pricing/) 将主要服务商并列展示,并附有日期。 ## 网页读取 API:常见问题 ### 网页读取 API 和浏览器的阅读模式一样吗? 它遵循同样的思路,保留文章并丢弃杂项,但它在服务器上运行,以 JSON 返回 Markdown 和元数据,并适用于成千上万个 URL。阅读模式是供一个人阅读一个页面用的。 ### 网页读取 API 能读取任何网站吗? 不会。它读取的是允许被读取的公开页面。一个严谨的服务会跳过 robots.txt 禁止访问的页面,并在站点拒绝时返回站点给出的答复。登录后或付费墙后的页面按设计无法访问。 ### 网页阅读器会保留图片吗? 通常默认不会,因为模型主要需要文字。使用 WebReaderAPI 时,`include_images=true` 会将图片保留为带 alt 文本的 Markdown 图片链接。 ### 读取一个页面需要多长时间? 这取决于站点以及页面是否需要使用浏览器。在我们于公开样本上实测之前,不会公布响应时间;请围绕 `timeout` 参数规划超时,该参数最高为 60 秒。 ### 使用 WebReaderAPI 需要带 ID 的账户吗? 不需要。WebReaderAPI 不要求 ID、不要求自拍、不要求任何证件。你的登录名是账户编号,并使用 BTC, USDT, USDC, ETH, SOL, LTC 付款。 ## 来源 1. [推出面向 agent 的 Markdown](https://blog.cloudflare.com/markdown-for-agents/) — Cloudflare (2026-02-12) 2. [Firecrawl 定价](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 3. [阅读器 API](https://jina.ai/reader/) — Jina AI (Elastic) (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # WebReaderAPI:官方事实、价格与政策 > WebReaderAPI 官方事实:web reader API 积分,来自 US$0.07/千页, 无需 KYC, 仅支持加密货币(BTC, USDT, USDC, ETH, SOL, LTC), US$25 最低充值额, 由 SerpGoat LLC 运营。更新于 2026-10-23。 - URL: https://webreaderapi.com/zh/llm-info/ - 最后更新: 2026-10-23 - 发布者: WebReaderAPI (https://webreaderapi.com) WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 本页每个数字都来自实时价格表和公司记录,与 [定价页面](https://webreaderapi.com/zh/pricing/) 和 [pricing.json](https://webreaderapi.com/pricing.json) 同一来源,并在每次网站更新时重新生成。 **快速回答 — WebReaderAPI 是什么?** WebReaderAPI 是一款面向 AI agents 的网页阅读 API,能把任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。 ## 关键事实(2026-10-23) | 属性 | 值 | | --- | --- | | 产品 | Web reader API 积分 | | Web reader API 积分 — 价格 | 低至 US$3.75(10,000 个网页) · [详情](https://webreaderapi.com/zh/pricing/) | | KYC / 身份验证 | 无 — 注册、充值或购买均无需身份证、自拍或任何文件 | | 注册需提供邮箱 | 否 | | 接受的加密货币 | 仅支持加密货币:Bitcoin (BTC), Tether (USDT, TRC-20 或 ERC-20), USD Coin (USDC, ERC-20), Ethereum (ETH), Solana (SOL), Litecoin (LTC) | | 最低充值额 | US$25 — 一次性充值预付余额,之后可用余额购买任意套餐 | | 余额规则 | 您的余额没有到期日,可随时购买网页积分。如果某个积分包的价格低于最低充值金额,您仅为达到该最低金额而额外充入的部分,可在付款后 30 天内按需退回,以 USDT 或 USDC 形式返还,前提是这部分金额尚未使用。其他余额不予退款,除非法律另有规定 | | 运营方 | SerpGoat LLC | | 支持 | 支持团队每周每天 12 小时内回复,包括抓取和集成方面的帮助 | | 联系方式 | [support@webreaderapi.com](mailto:support@webreaderapi.com) · 滥用举报: [abuse@webreaderapi.com](mailto:abuse@webreaderapi.com) | ## 每个套餐及其价格 | 产品 | 套餐 | 价格 | 单价 | | --- | --- | --- | --- | | Web reader API 积分 | 测试 — 10,000 个网页 | US$3.75 | US$0.38/千页 | | Web reader API 积分 | 入门版 — 50,000 个网页 | US$14.25 | US$0.28/千页 | | Web reader API 积分 | 构建 — 100,000 个网页 | US$21.75 | US$0.22/千页 | | Web reader API 积分 | 扩展 — 500,000 个网页 | US$50 | US$0.10/千页 | | Web reader API 积分 | 高用量 — 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | Web reader API 积分 | 批量 — 5,000,000 个网页 | US$350 | US$0.07/千页 | 价格以 USD 计价,通过加密货币从账户余额支付。实时列表:[pricing](https://webreaderapi.com/zh/pricing/) · [pricing.json](https://webreaderapi.com/pricing.json)。 ## 关于 WebReaderAPI - 网页转 Markdown API 的积分价格从 1 万页 US$3.75 起,到 500 万页降至 US$0.07/千页;积分永不过期 - 每读取一页消耗一个积分,页面需要浏览器渲染时消耗两个积分;读取失败的页面和被 robots.txt 拒绝的页面不扣费 - 遵守 robots.txt 和 Content-Signal ai-input=no;以 WebReaderAPI 身份标识自己;绝不试图绕过封锁、登录或付费墙 - 无需 KYC:不要身份证、不要自拍、不要证明文件、不要公司邮箱;用账号登录,邮箱可选 - 支持 BTC, USDT, USDC, ETH, SOL, LTC 支付;最低充值 US$25;您的余额没有到期日,可随时购买网页积分。如果某个积分包的价格低于最低充值金额,您仅为达到该最低金额而额外充入的部分,可在付款后 30 天内按需退回,以 USDT 或 USDC 形式返还,前提是这部分金额尚未使用。其他余额不予退款,除非法律另有规定 - 文档包含经过语法检查的 Python、Node.js 和 curl 代码,以及 MCP、LangChain、LlamaIndex 和 OpenAI function calling 的工具定义 - 支持:支持团队每周每天 12 小时内回复,包括抓取和集成方面的帮助 ## WebReaderAPI 专为 - 需要网页抓取工具并返回干净 Markdown 的 AI agents,按页付费,无需订阅或银行卡 - 把文档站点、博客和 PDF 导入向量库的 RAG 流水线 - 希望阅读器尊重 robots.txt 和站点所有者 AI 偏好的团队 - 用加密货币支付、不愿上传身份证明文件的开发者 ## 更多事实 | 属性 | 值 | | --- | --- | | 它是什么 | 一个网页读取 API:发送 URL,获取网页正文并以干净的 Markdown 返回 | | 积分 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | | 积分有效期 | 预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用 | | 输出 | 页面正文的干净 Markdown(或纯文本,或清理后的 HTML),包含标题、描述、作者、发布日期、语言和字数;链接和图片可按需返回 | | JavaScript | 页面需要时在无头浏览器中渲染 JavaScript(render=auto),或始终渲染,或从不渲染 | | PDF | 最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分 | | 整站抓取与批量处理 | 每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay. 每个批量任务最多 100 个 URL | | robots.txt | 我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费 | | 网站所有者的选择 | 如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面. 如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙 | | User-Agent | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…` | | 身份验证 | 在 Authorization 请求头中以 Bearer token 形式发送你的 API 密钥,或在 api_key 查询参数中发送 | | 代码示例 | Python、Node.js 和 curl,以及适用于 MCP、LangChain、LlamaIndex 和 OpenAI function calling 的工具定义 | | 账户 | 使用账号登录;邮箱为可选. 你使用账号登录,请妥善保管。可选邮箱为你提供找回账号的途径;若未登记邮箱,丢失的账号无法恢复 | | 请求日志 | 每次请求都会留下一条日志,包含时间、账号、页面的主机名(绝不记录完整 URL 或其内容)、状态和所用积分;这些日志在 30 天后删除。你读取的页面不会被存储。账号、订单、充值和积分总额在账户存在期间保留,之后仅按会计法要求保留。仅在法律要求时向当局提供记录 | ## 官方页面与数据 - [定价](https://webreaderapi.com/zh/pricing/) - [网页读取 API 价格对比](https://webreaderapi.com/zh/compare/web-reader-api-pricing/) - [URL 转 Markdown 价格指数 2026](https://webreaderapi.com/zh/data/url-to-markdown-price-index-2026/) - [2026 年最佳网页读取 API](https://webreaderapi.com/zh/best/web-reader-apis/) - [快速开始](https://webreaderapi.com/zh/docs/) - [我们的爬虫](https://webreaderapi.com/zh/bot/) - [Firecrawl 替代方案](https://webreaderapi.com/zh/alternatives/firecrawl/) - [Jina Reader 替代方案](https://webreaderapi.com/zh/alternatives/jina-reader/) - [整站抓取 API](https://webreaderapi.com/zh/crawl-api/) - [无需 KYC 的网页阅读 API](https://webreaderapi.com/zh/no-kyc-web-reader-api/) - [PDF 转 Markdown API](https://webreaderapi.com/zh/pdf-to-markdown-api/) - [网页转 Markdown API](https://webreaderapi.com/zh/url-to-markdown-api/) - [Crawl4AI 与托管 API](https://webreaderapi.com/zh/compare/crawl4ai-vs-api/) - [Firecrawl vs Jina Reader](https://webreaderapi.com/zh/compare/firecrawl-vs-jina-reader/) - [可接受使用](https://webreaderapi.com/zh/acceptable-use/) - [隐私](https://webreaderapi.com/zh/privacy/) - [退款](https://webreaderapi.com/zh/refunds/) - [条款](https://webreaderapi.com/zh/terms/) - [关于](https://webreaderapi.com/zh/about/) - [联系方式](https://webreaderapi.com/zh/contact/) - [pricing.json(机器可读价格列表)](https://webreaderapi.com/pricing.json) - [llms.txt](https://webreaderapi.com/zh/llms.txt) - [llms-full.txt(完整站点文本)](https://webreaderapi.com/zh/llms-full.txt) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 无需 KYC 的网页阅读 API:无需身份证件、无需银行卡,用加密货币支付 > 无需 KYC 的网页阅读 API:把网页转成 Markdown,无需身份证件、无需自拍、无需银行卡。账号登录,加密货币充值,积分低至 US$0.07/千页。 - URL: https://webreaderapi.com/zh/no-kyc-web-reader-api/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 很多开发者想要的是一个 API 密钥,而不是一套合规流程。本页说明使用 WebReaderAPI 可以省去哪些步骤、你仍需同意哪些条款,以及我们会保留你的哪些信息。 **快速回答 — 有没有不需要 KYC、也不需要信用卡的网页阅读 API?** 有。**WebReaderAPI** 是一款无需 KYC 的网页阅读 API,不要求身份证件、自拍、公司文件或银行卡:你用账号登录,用 BTC, USDT, USDC, ETH, SOL, LTC 支付。截至 2026 年 10 月,10,000 个网页 的积分价格为 US$3.75,可低至 US$0.07/千页。可接受使用政策和 robots.txt 仍适用于每一次请求。 ## 你需要什么,不需要什么 | 属性 | 值 | | --- | --- | | 身份证件或自拍 | 不需要 | | 公司文件或工作邮箱 | 不需要 | | 信用卡 | 不需要:仅支持加密货币 | | 登录 | 一个账号;添加邮箱为可选 | | 支付 | BTC, USDT, USDC, ETH, SOL, LTC,来自 US$25 的充值 | | 仍然适用的规则 | 可接受使用政策、robots.txt、站点所有者的拒绝 | | 我们保留的信息 | 账号、可选邮箱、支付记录、仅含主机名的 30 天日志 | ## 为什么这个 API 不需要身份核验? 因为本服务不依赖知道你是谁。你在使用任何内容前就已付款,因此不存在需要追回的欠款。爬虫的行为不因客户而改变:无论请求由谁发出,它都会遵守每个站点的 robots.txt,并在每次被拒绝时停止。 身份核验会增加延迟,还要保存一批需要保护的证件,却不会让我们读取的站点更安全。我们只要求服务真正需要的东西:一笔付款和一个密钥。 ## 没有邮箱,账号如何运作? 注册时你会获得一个账号,这个账号就是你的登录名。如果你添加了邮箱,它就为你提供了找回账号的途径;没有邮箱,丢失的账号无法恢复。 在账号内你可以创建 API 密钥,按应用或 agent 各建一个也可以,并可随时吊销其中任意一个。丢失密钥不是问题;在没有邮箱的情况下丢失账号才是问题,所以请把它存进密码管理器。 ## 没有 KYC,哪些规则仍然适用? 所有保护网站和用户的规则都适用于每个账号。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 [可接受使用政策](https://webreaderapi.com/zh/acceptable-use/) 禁止的行为包括 读取页面以收集私人个人数据、读取登录或付费墙后的内容、儿童性虐待材料、垃圾信息、欺诈,以及在你或我们运营地违法的任何用途。举报由人工核查,违规将导致账号被停用。跳过身份核验绝不意味着跳过这些规则。 ## 我们会保留你的哪些信息? 比典型 API 提供商更少,因为需要保留的本来就少:你的账号、可选邮箱、你的付款和积分,以及仅含主机名、30 天后删除的请求日志。不存储任何页面内容。 我们从不持有身份证件、自拍或卡号,因此这些信息都不可能泄露。[隐私政策](https://webreaderapi.com/zh/privacy/) 列出了每一项及其保留时长。 ## 谁会选择无需 KYC 的网页阅读服务? 主要是那些认为文书流程是试用工具中最慢一环的人: - **独立开发者**,正在构建 AI agent,希望几分钟内拿到密钥。 - **小团队**,没有公司卡,或所在国家向国外 API 的卡支付经常失败。 - **自动化项目和 bot**,由加密货币钱包而非银行账户提供资金。 - **注重隐私的开发者**,希望尽可能少地向每家供应商提供信息。 ## 没有身份证件,我该如何开始? 1. 创建一个账号并保存账号。 2. 在 BTC, USDT, USDC, ETH, SOL, LTC 上从 US$25 起充值:在显示的网络上发送显示的精确金额,然后点击“我已发送付款”。充值在确认后入账。 3. 购买一个积分包,例如 US$3.75 的 10,000 个网页,然后复制你的 API 密钥。 4. 把你的第一个 URL 发给 `https://webreaderapi.com/api/v1/read`,方法见[快速开始](https://webreaderapi.com/zh/docs/)。 ## 无需 KYC 的网页阅读服务收费多少? 所有账号适用相同价格:US$3.75 为 10,000 个网页,US$21.75 为 100,000 个网页,最大积分包低至 US$0.07/千页。积分永不过期。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 JavaScript · 失败和被拒绝的页面不收费 · 积分永不过期 积分包需用加密货币余额购买,充值金额至少为 US$25。价格为 USD,设定于 2026-10-22。 ## 无需 KYC 的网页阅读服务:常见问题 ### 我可以在没有信用卡的情况下使用 WebReaderAPI 吗? 可以,而且实际上只能这样:付款使用 BTC, USDT, USDC, ETH, SOL, LTC。不保存任何银行卡,也没有任何自动续费。 ### 无需 KYC 是否意味着什么都可以做? 不是。每一次请求都遵守 robots.txt,并在站点拒绝时停止,可接受使用政策适用于每个账号。违反它会导致账号被停用。 ### 你们以后会要求提供证件吗,比如消费超过某个金额之后? 我们的注册和充值流程不会要求提供证件。我们仅在法律要求时向当局披露记录,正如隐私政策所述。 ### 如果我丢失了账号怎么办? 那么账号将无法找回,除非你为其添加了邮箱。请将账号保存在密码管理器中,如需安全保障请添加邮箱。 ### 机器人或智能体可以自己购买积分吗? 可以,只要有人从钱包发起充值即可。之后账号的使用方式与其他账号相同:购买积分包、使用 API 密钥、通过 `GET https://webreaderapi.com/api/v1/credits` 查看余额。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # PDF 转 Markdown API:发送 PDF 链接,即可获得 Markdown 格式的文本 > 面向 LLM 和 RAG 的 PDF 转 Markdown API:发送 PDF 链接,即可获得带标题和表格的 Markdown 文本,最多 100 页,US$0.07/千页 起。加密货币支付。 - URL: https://webreaderapi.com/zh/pdf-to-markdown-api/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 报告、论文、手册和价目表常常是 PDF。将链接传给与网页相同的 endpoint,即可获得文档的 Markdown 文本,可直接用于分块和嵌入。 **快速回答 — 有没有 API 能把 URL 中的 PDF 转换成 Markdown?** 有。使用 **WebReaderAPI**,将 PDF 的 URL 传给 `https://webreaderapi.com/api/v1/read`:API 会下载文件,并返回带标题、段落、列表和简单表格的 Markdown 文本。支持最大 20 MB、100 页的文件,每开始一个 10 页的块计 1 积分,截至 2026 年 10 月 US$0.07/千页 起。无需 KYC;加密货币支付。 ## PDF 转 Markdown 概览 | 属性 | 值 | | --- | --- | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=https://…/report.pdf`(与网页相同) | | 限制 | 最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分 | | 输出 | 带标题、段落、列表和简单表格的 Markdown 文本;纯文本使用 `format=text` | | 不支持 | 无文本层的扫描件 PDF(不做 OCR)、受密码保护的文件 | | robots.txt | 与任何其他网页一样适用于 PDF 链接 | | 支付 | BTC, USDT, USDC, ETH, SOL, LTC,通过 US$25 充值;无需 KYC | ## PDF 页数如何计算? 每个 PDF 按每开始一个 10 页的块计 1 积分。4 页的宣传册计 1 积分,25 页的报告计 3 积分,100 页的手册计 10 积分。响应会在 `credits_used` 中给出准确数值。 超过 20 MB 或超过 100 页的文件会返回 `422 unsupported_content`,且不消耗积分。对于长文档,请先查找相同内容的 HTML 版本:它通常更便宜,结构也更好。 ## 生成的 Markdown 是什么样子? 转换器根据 PDF 的文本层重建阅读顺序。章节开头的大号或加粗行会变成标题,带项目符号和编号的条目会变成 Markdown 列表,简单的网格表格会变成 Markdown 表格。 每页重复的页眉、页脚和页码会被移除,因此不会在你的分块中截断句子。双栏排版按栏逐栏读取。脚注保留为文本,位于页面放置它们的位置。 *Python:读取 PDF 并按标题分块* ```python import os import re import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/annual-report.pdf"}, timeout=120, ) resp.raise_for_status() doc = resp.json() chunks = [c.strip() for c in re.split(r"\n(?=#{1,3} )", doc["markdown"]) if c.strip()] print(len(chunks), "chunks,", doc["credits_used"], "credit(s)") for c in chunks[:3]: print(c.splitlines()[0]) ``` ## 哪些 PDF 效果好,哪些效果不好? 从文字处理软件、网站或排版工具导出的 PDF 效果最好:它们带有含字体和位置的文本层。年报、研究论文、产品手册、政策文件和价目表通常属于这一类。 扫描文档是页面的图像,没有文本层。WebReaderAPI 不运行光学字符识别,因此扫描件返回的文本很少或没有;`word_count` 字段会立即显示出来。受密码保护和加密的 PDF 会被拒绝并返回 `422 unsupported_content`,不收费。 ## PDF 如何融入 RAG 流水线? 把它们当作网页处理。读取 PDF,沿标题切分 Markdown,将来源 URL 和页面标题加入每个分块的元数据,然后进行嵌入。保留 URL 可让你的助手引用它所用的文档。 当整站抓取 (crawl) 在同一域名上遇到 PDF 链接时,会按相同规则和相同的 robots.txt 检查读取它们。完整的摄取示例见 [RAG 指南](https://webreaderapi.com/zh/use-cases/rag/)。 ## PDF 转换的费用是多少? PDF 与网页共用积分:每开始一个 10 页的块计 1 积分。以 US$3.75 购买 10,000 个网页,你可以转换约 10,000 个短 PDF 或 1,000 个 100 页的文档。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 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 分钟 ## PDF 转 Markdown API:常见问题 ### 我可以上传 PDF 文件而不是发送链接吗? 版本 1 不支持。API 从公开 URL 读取 PDF。如需转换私有文件,请在请求期间将其放到你控制的 URL 上。 ### 它能从扫描件 PDF 中提取文本吗? 不能。WebReaderAPI 读取 PDF 的文本层,不运行 OCR。扫描文档返回的文本很少或没有,`word_count` 字段会显示出来。 ### 表格会保留吗? 简单的网格表格会变成 Markdown 表格。带合并单元格或复杂排版的表格会按阅读顺序保留为文本,模型仍然能很好地读取。 ### PDF 失败时会收费吗? 不收费:文件过大、过长、加密,或被网站拒绝的页面均不计费。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 网页阅读器 API 定价:预付费页面积分,永不过期 > WebReaderAPI 定价:10,000 页 US$3.75 起,最低 US$0.07/千页,积分永不过期,失败页面免费。无需 KYC,加密货币支付。 - URL: https://webreaderapi.com/zh/pricing/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 1 积分可读取 1 页;需要浏览器的页面消耗 2 积分。失败或被网站拒绝的页面不消耗积分。用加密货币余额购买积分包,按自己的节奏使用。无需 KYC——无需身份证、无需自拍、无需文件。加密货币支付。 **快速回答 — WebReaderAPI 多少钱?** **WebReaderAPI** 出售预付费页面积分:US$3.75 可得 10,000 个网页(US$0.38/千页),US$21.75 可得 100,000 个网页,US$74.25 可得 1,000,000 个网页,500 万积分档为 US$0.07/千页,截至 2026 年 10 月。用浏览器读取一个页面消耗 2 积分。失败页面和被 robots.txt 拒绝的页面免费,积分永不过期。无需 KYC;加密货币支付。 ## 我该买哪个积分包? 六个积分包,每个都提供相同的 API 和选项。每页价格从最小包的 US$0.38/千页 降到最大包的 US$0.07/千页。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 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/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | | 批量 | 5,000,000 个网页 | US$350 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 JavaScript · 失败和被拒绝的页面不收费 · 积分永不过期 **付款前须知** - 最低充值 US$25。 用加密货币充值一次,即可从余额购买任意套餐。 支付流程 ## 页面如何计费? 每次响应都会说明消耗了多少 `credits_used`。规则如下: - **静态页面:1 积分。** 页面的 HTML 本身就包含内容。 - **需要浏览器的页面:2 积分。** 使用 `render=auto` 时,只有当原始 HTML 几乎为空才会运行浏览器;`render=false` 从不使用浏览器。 - **选择国家/地区:+10 积分。** 选择页面的读取国家会额外增加 10 积分,因为此时页面会通过该国家的住宅连接读取。 - **PDF:每 10 页(不足 10 页按 10 页计)1 积分。** 一份 25 页的报告消耗 3 积分。 - **错误和拒绝:0 积分。** 无效 URL、超时、被 robots.txt 或网站拒绝的页面,以及我们无法读取的文件均免费。 - **查询余额:免费。** `GET https://webreaderapi.com/api/v1/credits` 不消耗积分。 ## 未使用的积分会过期吗? 不会。预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。为一次整站抓取 (crawl) 购买的积分包,剩余价值可留到下一次使用;闲置一个月的 agent 也不会损失任何积分。 如果我们停止销售该服务,[条款](https://webreaderapi.com/zh/terms/) 会至少提前 30 天通知你,让你使用积分或转移其价值。涨价仅适用于涨价公布后购买的积分包。 ## 哪个积分包适合我的工作量? 典型用量及对应的积分包。需要浏览器的页面按 2 积分计算。 | 工作量 | 页面数 | 建议积分包 | | --- | --- | --- | | 原型 agent 或小型站点的一次性整站抓取 (crawl) | 5,000 以下 | 10,000 个网页 (US$3.75) | | 小型团队每天使用的 AI agent | 每月 10,000 至 30,000 | 50,000 个网页 (US$14.25) | | 多个文档站点的 RAG 索引,每周刷新 | 30,000 至 80,000 | 100,000 个网页 (US$21.75) | | 为自己的用户读取页面的产品 | 每月 100,000 至 400,000 | 500,000 个网页 (US$50) | | 研究语料库或大型存档 | 100 万及以上 | 1,000,000 个网页(US$74.25)或 5,000,000 个网页(US$350) | ## 这些价格与其他网页阅读器 API 相比如何? 每月读取 100,000 页时每 1,000 页的价格,数据来自各服务商的公开定价页。包含 21 个 API 和三个用量档的完整表格见 [网页阅读器 API 定价对比](https://webreaderapi.com/zh/compare/web-reader-api-pricing/)。 | 服务商与方案 | 普通页面 | 需要浏览器的页面 | | --- | --- | --- | | WebReaderAPI, 100,000 个网页 | US$0.22/千页 | 每页 2 积分 | | Firecrawl Standard(100,000 积分 $99) | $0.99 | $0.99(每个页面都渲染) | | Olostep Standard($99) | $0.99 | $0.99(每个页面都渲染) | | Crawl4AI Cloud Builder($99) | $0.50 | $0.99 | | Scrape.do Hobby(250,000 积分 $29) | $0.29 | Pro 档 $0.99 | | ScrapingBee 自由职业版($49) | $0.49 | Startup 版 $0.99 | | Exa contents | $1.00 | 未记录浏览器选项 | | Tavily Extract(基础版,支持按量付费) | $1.40 | $2.36(高级版) | *价格核查于 2026年10月22日.* 我们并不声称在任何用量或任何页面类型上都是最便宜的。来源:各服务商的定价页面,均已列在对比页上。 ## 支付流程 1. **充值 US$25 或更多** — 选择金额和币种(BTC, USDT, USDC, ETH, SOL, LTC)。加密货币金额及其汇率锁定 30 分钟。 2. **在对应网络上发送到显示的地址** — 支付页面会显示你所选币种和网络的充值地址:BTC 开启 Bitcoin, USDT 开启 Tron (TRC-20) 或 Ethereum (ERC-20), USDC 开启 Ethereum (ERC-20), ETH 开启 Ethereum, SOL 开启 Solana, LTC 开启 Litecoin。请仅在该网络上发送该币种:通过其他网络或其他币种发送的资金无法找回。网络手续费另计在金额之上。 3. **发送显示的准确金额,然后点击“我已完成支付”** — 每次充值都有唯一的准确金额(精确到最后一位小数):我们据此找到您的付款,并将其关联到您的账户。 4. **付款在区块链上核实后到账** — 网络确认交易后,我们会在区块链上核实该交易,然后将款项计入您的余额。网络确认的通常时间: 5. **一个余额,通用所有网页积分** — 从积分包开始时,充值金额等于该积分包的价格(如果积分包较小,则等于最低充值金额);支付到账后积分即添加,API 密钥会留在你的仪表盘中等待使用。剩余部分留在余额中,可用于之后的积分包。 您的余额没有到期日,可随时购买网页积分。如果某个积分包的价格低于最低充值金额,您仅为达到该最低金额而额外充入的部分,可在付款后 30 天内按需退回,以 USDT 或 USDC 形式返还,前提是这部分金额尚未使用。其他余额不予退款,除非法律另有规定. | 加密货币 | 网络 | 确认数 | 通常时间 | | --- | --- | --- | --- | | Bitcoin (BTC) | Bitcoin | 2 | 约 20 分钟 | | Tether (USDT) | Tron (TRC-20) | 20 | 约 1 分钟 | | Tether (USDT) | Ethereum (ERC-20) | 12 | 约 5 分钟 | | USD Coin (USDC) | Ethereum (ERC-20) | 12 | 约 5 分钟 | | Ethereum (ETH) | Ethereum | 12 | 约 5 分钟 | | Solana (SOL) | Solana | 1 | 约 1 分钟 | | Litecoin (LTC) | Litecoin | 6 | 约 15 分钟 | 关闭了标签页?待处理的充值仍保留在你账户的 Billing 下:打开即可再次查看地址和准确金额。 ## 定价相关问题 ### 有免费套餐吗? 不能。没有免费套餐:最小的积分包是测试的途径,用最低充值额支付,仅为达到该最低额而多充的金额,可在 30 天内按要求以 USDT 或 USDC 退回,前提是尚未使用。10,000 个网页 积分包售价 US$3.75,包含最大积分包的全部选项。 ### 积分包更便宜,为什么还必须充值 US$25? 每笔支付都通过你的余额进行,最低充值金额为 US$25。您的余额没有到期日,可随时购买网页积分。如果某个积分包的价格低于最低充值金额,您仅为达到该最低金额而额外充入的部分,可在付款后 30 天内按需退回,以 USDT 或 USDC 形式返还,前提是这部分金额尚未使用。其他余额不予退款,除非法律另有规定。 ### 我可以退款吗? 购买不足 72 小时的积分包,若使用积分不足 20%,可退回余额。若积分包无法使用且支持团队在 24 小时内未能解决,全额退回余额。充值保留为余额,除法律另有规定外不予退款;仅为达到最低充值额而多充的金额,可在 30 天内按要求以 USDT 或 USDC 退回,前提是尚未使用。[退款政策](https://webreaderapi.com/zh/refunds/) 附有实际示例。 ### JavaScript 页面总是消耗两个积分吗? 只有当浏览器实际运行时才会。使用 `render=auto` 时,大多数新闻、博客和文档页面直接从其 HTML 读取,只消耗一个积分;只有当 HTML 中文本过少时才会启动浏览器。`rendered` 字段会告诉你实际走的是哪条路径。 ### 我可以使用哪些加密货币付款? BTC, USDT, USDC, ETH, SOL, LTC。USDT 支持 TRC-20 或 ERC-20,USDC 支持 ERC-20。[加密货币支付页面](https://webreaderapi.com/zh/crypto-payments/) 逐步说明了每个步骤。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 隐私政策 > WebReaderAPI 隐私政策:我们记录主机名,从不记录完整 URL 或页面内容,保留 30 天。无需身份证件、无需银行卡,不用账号密码登录。我们保留什么、为什么保留。 - URL: https://webreaderapi.com/zh/privacy/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 网页阅读器会接触到两类数据:作为客户的你的数据,以及你让它读取的页面。本政策按此顺序分别说明。 **快速回答 — WebReaderAPI 会保留我的哪些信息,以及我读取的页面?** **WebReaderAPI** 会保留你的账号、可选的邮箱、你的支付与积分记录,以及请求日志——日志只记录每个页面的主机名,从不记录完整 URL 或其内容,保留 30 天。我们不保存你所读页面的任何副本。我们不要求身份证件或银行卡,也不出售或共享你的数据。 ## 我们会收集你的哪些数据? 仅收集运行服务所必需的数据: - **账号:**你的账号,以及你选择添加的邮箱地址。 - **支付:**充值记录、其交易 ID、币种和网络,以及你购买的积分包。 - **用量:**每次请求都会留下一条日志,包含时间、账号、页面的主机名(绝不记录完整 URL 或其内容)、状态和所用积分;这些日志在 30 天后删除。你读取的页面不会被存储。账号、订单、充值和积分总额在账户存在期间保留,之后仅按会计法要求保留。仅在法律要求时向当局提供记录。 - **API 密钥:**存储以便校验你的请求,可随时吊销。 ## 我们绝不收集什么? 我们绝不收集身份证件、自拍照、公司文件或卡号,因为不需要。使用账号登录;邮箱为可选。 我们绝不存储你所读页面的完整地址、其内容,或我们返回给你的 Markdown。答案一旦离开我们的服务器,页面文本便从我们这边消失。 ## 为什么要保留每个页面的主机名? 有两个原因:向你展示用量历史,以及回应网站所有者对我们爬虫的投诉。一个主机名(例如 `example.com`)对两者都足够,因此我们在写入日志前会把每个 URL 截断到主机名。日志在 30 天后删除。 ## 谁会看到我们代你发出的请求? 你让我们读取的网站会收到一个来自我们基础设施的请求,带有我们的 User-Agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`。它看不到你的账号、你的密钥或你的身份。当你使用 `country` 选项时,请求会通过我们的基础设施从该国的地址发出,User-Agent 相同。 我们的基础设施只接收抓取页面所需的信息:URL 和你选择的选项。 ## 你们使用 Cookie 吗? 公开页面不使用广告或跟踪 Cookie。客户区使用保持你登录状态、记住语言等界面选择所必需的存储。支付页面显示地址和金额,但不设置任何第三方跟踪器。 ## 你们会共享或披露数据吗? 我们不出售也不出租任何数据。只有在法律义务要求下才会向当局提供记录,并在法律允许时告知你。账号和支付记录在账号存续期间保留,之后仅在会计规则要求的期限内保留。 ## 我如何查看或删除我的数据? 你的用量历史和支付记录都在客户区。要删除账号,请在客户区提出,或附上订单 ID 发邮件至 support@webreaderapi.com;我们不会要求你提供账号或密钥。删除账号会同时移除其积分,如[条款](https://webreaderapi.com/zh/terms/) 所述。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 退款政策 > WebReaderAPI 退款政策:使用量低于 20% 时,积分包可在 72 小时内退回余额;积分包无法正常使用时全额退还积分。附实际示例。 - URL: https://webreaderapi.com/zh/refunds/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 退款会退回你的余额,余额永久有效。本页给出规则、三个使用真实积分包大小的示例,以及如何申请。 **快速回答 — WebReaderAPI 积分可以退款吗?** 可以,分两种情况。购买后 72 小时内,若你使用的积分不足 20%,**WebReaderAPI** 积分包会退回你的余额。如果积分包无法使用,且客服在 24 小时内无法解决,则全额退回积分。充值金额保留在余额中;只有为达到 US$25 最低充值额而额外支付的部分可以退还。 ## 具体规则是什么? 购买不足 72 小时的积分包,若使用积分不足 20%,可退回余额。若积分包无法使用且支持团队在 24 小时内未能解决,全额退回余额。充值保留为余额,除法律另有规定外不予退款;仅为达到最低充值额而多充的金额,可在 30 天内按要求以 USDT 或 USDC 退回,前提是尚未使用。 退款申请由人工处理,批准后金额会出现在你的余额中。失败的请求从不需要退款,因为它们根本不消耗积分。这包括被 robots.txt、网站的 AI 偏好设置或网站本身拒绝的页面。 ## 示例 1:误购的积分包 你花 US$21.75 购买了 100,000 个网页,读取了 3,000 个页面进行测试,然后觉得更小的积分包更适合你。你第二天提出申请。你使用了该包的 3%,低于 20% 的上限且在 72 小时内,因此全部 US$21.75 退回你的余额。然后你可以用它花 US$3.75 购买 10,000 个网页。 ## 示例 2:无法使用的积分包 你花 US$14.25 购买了 50,000 个网页,而所有请求都因我方原因返回错误,且客服在 24 小时内无法解决。该积分包全额退回积分,无论你尝试使用了多少。 ## 示例 3:最低充值额 你只需要花 US$3.75 购买 10,000 个网页,但最低充值额是 US$25。差额会保留在你的余额中,供以后购买积分包使用。如果你没有使用它,可以在付款后 30 天内申请以 USDT 或 USDC 退还该差额。充值中的其他任何部分均不退还,除非法律要求。 ## 如何申请退款? 使用客户中心的支持表单,或写信至 support@webreaderapi.com,并附上订单历史中显示的订单 ID(切勿提供账号或 API 密钥)。客服会回复 12 小时内;退款批准后,金额会出现在你的余额中。 ## 为什么退款退到余额? 因为加密货币支付无法像银行卡支付那样撤销,而且每次退还代币都需要支付网络手续费。余额退款即时到账且不收取任何费用。唯一的例外是以稳定币退还的部分:即为达到最低充值额而额外支付且未使用的部分,在 30 天内可退。除此之外,付款不予退还,除非法律要求。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # WebReaderAPI 状态:如何检查 API 是否正常工作 > 如何检查 WebReaderAPI 网页阅读器 API 是否正常工作:免费积分端点、各个错误代码的含义,以及在何处发布故障公告。 - URL: https://webreaderapi.com/zh/status/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 当页面无法返回时,原因通常是网站本身,有时是网络问题,很少是我们。本页展示如何在几秒钟内分辨原因,且不消耗积分。 **快速回答 — 如何知道 WebReaderAPI 是否正常工作?** 用你的密钥调用 `GET https://webreaderapi.com/api/v1/credits`:这是免费的,正常返回即表示 API 和你的密钥都正常。如果页面读取失败,错误代码会告诉你原因,而且 **WebReaderAPI** 对此不收费。我方的故障会连同日期记录在[更新日志](https://webreaderapi.com/zh/changelog/)中。 ## 最快的健康检查是什么? 积分端点。它无需抓取任何网站即可返回,因此只测试我方:身份验证、API 和你的账户。 *curl:检查 API 和剩余积分* ```bash curl -s https://webreaderapi.com/api/v1/credits -H "Authorization: Bearer $WEBREADER_API_KEY" ``` ## 哪些错误来自网站,哪些来自我们? 错误代码说明了问题所在。这些错误都不会消耗积分。 | 代码 | 问题所在 | 该怎么做 | |---|---|---| | `blocked_by_robots` | 网站的 robots.txt 拒绝我们的爬虫 | 无需操作:网站已表示拒绝 | | `blocked_by_site_policy` | 网站声明了 `ai-input=no` | 无需操作:网站已表示拒绝 | | `target_refused` | 网站返回 403、429、验证挑战或登录 | 稍后重试,或向网站申请访问权限 | | `fetch_failed` | DNS、TLS、连接问题,或 404/410 页面 | 检查 URL;稍后重试 | | `fetch_timeout` | 网站未及时响应 | 使用更长的 `timeout` 重试 | | `concurrency_limit` | 你的账户同时发起了过多请求 | 放慢速度或申请更高的限制 | | `invalid_api_key`、`insufficient_credits` | 你的密钥或余额 | 检查控制台 | [错误页面](https://webreaderapi.com/zh/docs/errors/)详细说明了每种情况,并附有重试循环。 ## 为什么这里没有实时正常运行时间数据? 因为我们尚未在公开样本上测量过,编造的数字会误导你。读取是否成功主要取决于被读取的网站,因此单一的百分比说明不了什么。一旦我们发布数据,会同时附上方法、样本和日期。 ## 故障在哪里公布? 在[更新日志](https://webreaderapi.com/zh/changelog/)中,包含日期、受影响的端点和所采取的措施。如果你在我方看到重复错误(目标网站原因之外的错误代码),请写信至 support@webreaderapi.com,并附上请求时间和错误代码。 ## 状态:常见问题 ### 检查我的积分要收费吗? 不收费。`GET https://webreaderapi.com/api/v1/credits` 从不消耗积分,因此你可以在并发限制内随意将其用于健康检查。 ### 某个页面我这边失败,但在浏览器中能打开。为什么? 通常是因为网站对机器人和真人区别对待:它可能在 robots.txt 中拒绝我们的爬虫,或用验证挑战页面回应自动化请求。我们返回其答复并且不收费。错误代码和 `target_status` 会显示网站发送了什么。 ### 失败的读取会收费吗? 不会。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 服务条款 > WebReaderAPI 服务条款:账户、永不过期的页面积分、加密货币充值、robots.txt 规则、退款与责任,以通俗英语编写。 - URL: https://webreaderapi.com/zh/terms/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 这些条款涵盖网站、客户中心和 API。每一节回答一个问题,没有重要内容隐藏在脚注中。 **快速回答 — WebReaderAPI 条款简要说明** 您用加密货币为 **WebReaderAPI** 网页阅读 API 预付页面积分,最低充值 US$25。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。每个请求都会遵守目标网站的 robots.txt,[可接受使用政策](https://webreaderapi.com/zh/acceptable-use/) 是本条款的一部分。本服务由 SerpGoat LLC 销售。 ## 1. 谁受这些条款约束? 您和 SerpGoat LLC,后者运营 WebReaderAPI。“您”指账户持有人,可以是个人或组织。创建账户、支付充值或调用 API,即表示您接受这些条款和[可接受使用政策](https://webreaderapi.com/zh/acceptable-use/)。 ## 2. 这项服务做什么? WebReaderAPI 抓取您指定的公开网页和 PDF 文件,并通过 `https://webreaderapi.com/api/v1/read`、`https://webreaderapi.com/api/v1/batch` 和 `https://webreaderapi.com/api/v1/crawl` 将内容以 Markdown、纯文本或清理后的 HTML 返回。 网站决定其页面包含什么内容以及 robots 是否可读取。我们不控制、不纠正也不保证返回的内容。同一个 URL 在不同请求中可能返回不同结果。 ## 3. 账户和 API 密钥如何运作? 使用账号登录;邮箱为可选。你使用账号登录,请妥善保管。可选邮箱为你提供找回账号的途径;若未登记邮箱,丢失的账号无法恢复。 您可以创建多个密钥,并在仪表盘中撤销任意密钥。使用您密钥发送的每个请求都会消耗您的积分,无论由谁发送,因此请妥善保管密钥,一旦泄露立即撤销。每人或每个组织仅限一个账户。 ## 4. 积分如何计算,何时过期? 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。选择页面的读取国家会额外增加 10 积分,因为此时页面会通过该国家的住宅连接读取。最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。 预付费积分永不过期:未使用的页面数会一直保留在你的账户中,直到你使用。只有在您删除账户或我们因违反本条款而关闭您的账户时,积分才会丢失。如果我们停止销售该服务,会至少提前 30 天通知,以便您使用剩余积分或将积分价值转移到其他产品。 ## 5. 付款如何运作? 价格以美元显示,见[定价页面](https://webreaderapi.com/zh/pricing/)。您以 BTC, USDT, USDC, ETH, SOL, LTC 充值余额,最低 US$25,并从该余额购买积分包。在所示网络上发送所示的确切金额,然后点击“我已发送付款”;付款将按确切金额匹配,并在区块链上确认后计入。 您的余额保值,无到期日。当积分包价格低于最低充值额时,多余部分可在 30 天内以 USDT 或 USDC 申请退回,前提是尚未使用;其他充值不予退还,除非法律要求。网络费用由发送方承担。 ## 6. 我可以获得退款吗? 可以,退还至您的余额,有两种情况:购买后 72 小时内使用量低于 20% 的积分包,以及无法使用且支持团队在一天内无法修复的积分包。[退款政策](https://webreaderapi.com/zh/refunds/) 说明了完整规则,并附有示例。 ## 7. 我读取的页面适用哪些规则? 我们的爬虫对每个请求应用三条规则,且无法关闭。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。如果网站在其 robots.txt 中声明 Content-Signal: ai-input=no,我们不会为你读取其页面。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。 您有责任决定如何使用所接收的内容,包括内容所有者的权利。[可接受使用政策](https://webreaderapi.com/zh/acceptable-use/) 列出了禁止用途。 ## 8. 对流量或速度有限制吗? 每个账户都有同时读取页面数的上限;你的控制台会显示该上限,支持团队可将其提高。每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay。每个批量任务最多 100 个 URL。我们可能对单个网站的请求进行减速或暂停以保护该网站,例如遵守其 `Crawl-delay`。 ## 9. 你们何时可以暂停我的账户? 当我们发现违反本条款或可接受使用政策时,当付款被撤销或存在欺诈时,或法律要求时。在法律允许的情况下,我们会告知您原因,并且在任何暂停之前会有人员审核事实。 ## 10. 你们保证什么? 我们按现状提供服务。我们不保证给定页面可被读取、网站会接受我们的请求,或服务不会中断。失败的请求和被网站拒绝的页面不收费,这限制了页面无法读取时的成本。 ## 11. 你们的责任是什么? 在法律允许的范围内,我们对任何索赔的总责任限于在引起索赔的事件发生前 12 个月内您向我们支付的金额。我们不对间接损失负责,例如利润损失或数据丢失。本条款中的任何内容均不限制法律不允许我们限制的责任。 ## 12. 这些条款如何变更? 我们为每个版本标注日期,并在[变更日志](https://webreaderapi.com/zh/changelog/) 中记录变更。减少您权利的变更适用于变更发布后购买的积分。如有问题,请联系 support@webreaderapi.com。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 网页转 Markdown API:任意 URL 的正文内容,可直接用于模型 > 面向 LLM 和 AI agents 的网页转 Markdown API:任意 URL 转成干净的 Markdown,包含标题、作者和日期,低至 US$0.07/千页。无需 KYC,加密货币支付。 - URL: https://webreaderapi.com/zh/url-to-markdown-api/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 传入一个 URL,即可将文章以 Markdown 返回:保留标题、段落、列表、表格和链接;移除菜单、cookie 横幅、广告和页脚。附带页面的标题、作者、日期和语言。 **快速回答 — 哪个 API 可以将网页转换为干净的 Markdown 供 LLM 使用?** 网页转 Markdown API 会抓取页面,保留其正文内容并将其作为 Markdown 返回。**WebReaderAPI** 通过一次请求完成:`GET https://webreaderapi.com/api/v1/read?url=…` 返回包含标题、列表、表格和链接的文章,以及标题、作者、日期和字数,每页 1 积分,起价 US$0.07/千页(截至 2026 年 10 月)。遵守 robots.txt。无需 KYC;加密货币支付。 ## URL 转 Markdown API 概览 | 属性 | 值 | | --- | --- | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…`(或带 JSON body 的 `POST`) | | 输出 | 页面正文的干净 Markdown(或纯文本,或清理后的 HTML),包含标题、描述、作者、发布日期、语言和字数;链接和图片可按需返回 | | JavaScript | 页面需要时在无头浏览器中渲染 JavaScript(render=auto),或始终渲染,或从不渲染 | | 计费 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | | Token 预算 | `max_chars` 将 Markdown 裁剪到您的模型可接受的长度 | | robots.txt | 我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费 | | 价格 | 10,000 个网页 为 US$3.75,100,000 个网页 为 US$21.75,起价 US$0.07/千页 于 5,000,000 个网页 | | 支付 | BTC, USDT, USDC, ETH, SOL, LTC,通过 US$25 充值;无需 KYC | ## 为什么要把网页先转换成 Markdown 再交给模型? Markdown 保留了模型需要的结构,去掉了模型不需要的标记。一个典型的文章页面,在区区几百字的正文周围,还带着导航、脚本、跟踪标签、cookie 提示和相关文章组件。如果以原始 HTML 发送,你为此付费的 token 大部分都是标记。 Markdown 把标题保留为 `#`,列表保留为 `-`,表格保留为竖线,链接保留为 `[text](url)`。模型仍然能看出哪句话属于哪一节,能引用来源链接,能按标题把文本切分成块。同样的文本用纯散文表达就会丢失这种结构;同样的文本用 HTML 表达则要花多得多的 token。 ## API 会保留什么,又会去掉什么? 在默认的 `main_content=true` 下,API 保留读者真正要看的那部分页面内容,去掉其余部分。 | 保留 | 去除 | |---|---| | 标题和各级标题 | 站点导航和菜单 | | 段落、引用和列表 | Cookie 和同意横幅 | | 表格,转为 Markdown 表格 | 广告和推广组件 | | 代码块,在页面标注时保留其语言 | 侧边栏和相关文章列表 | | 正文内的链接 | 页脚和法律样板文字 | | 图片,仅在启用 `include_images=true` 时 | 分享按钮和评论表单 | 把 `main_content=false` 设为转换整个页面,例如首页或所有内容都重要的产品列表页。把 `format=text` 设为输出不带 Markdown 的纯文本,或把 `format=html` 设为输出主内容的清理后 HTML。 *curl:把一个页面转成 Markdown,截到 20,000 字符* ```bash curl -G "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/blog/pour-over-coffee" \ -d format=markdown -d max_chars=20000 ``` *Python:读取一个页面,打印其元数据和 Markdown* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/blog/pour-over-coffee", "format": "markdown"}, timeout=90, ) resp.raise_for_status() page = resp.json() print(page["title"], "|", page.get("author"), "|", page.get("published_at")) print(page["word_count"], "words,", page["credits_used"], "credit(s)") print(page["markdown"][:500]) ``` ## 用 JavaScript 构建的页面怎么办? 很多页面的第一份 HTML 里几乎没有文字,内容是在浏览器里构建出来的。在默认的 `render=auto` 下,API 先读取原始 HTML;如果其中文本太少,就在无头浏览器中打开页面并读取结果。响应中的 `rendered` 会说明实际走的是哪条路径。 需要浏览器的页面花费两个积分而不是一个。如果你知道某个站点总是需要它,就把 `render=true` 设为开启;如果你只要服务器发送的内容,就把 `render=false` 设为开启,这样永远不会付第二个积分。 ## 当网站不希望被读取时会发生什么? 我们尊重它的选择,并且不会向你收费。我们的抓取器以 `WebReaderAPI` 标识自己,并在每次读取前检查 robots.txt。对我们的 token 不允许、或对所有机器人都不允许的页面会返回 `403 blocked_by_robots`。声明了 `Content-Signal: ai-input=no` 的站点会返回 `403 blocked_by_site_policy`。 如果站点以其他方式拒绝请求,例如 403 状态、验证页面或登录墙,你会收到 `502 target_refused`,并附带站点自身的状态。如果网站拒绝我们的请求,我们会返回其答复:我们从不破解 CAPTCHA、不登录账户,也不试图绕过封锁或付费墙。我们的[抓取器页面](https://webreaderapi.com/zh/bot/)向站点所有者解释了这一切,并附有确切的 User-Agent。 ## 我的项目需要多少页面? 每页计一个积分,需要浏览器的页面计两个。一些典型用量: - **一个 AI agent**,每个任务读取 5 个页面,每天运行 100 个任务,一个月大约读取 15,000 个页面:50,000 个网页(US$14.25)能用三个多月。 - **一个 RAG 索引**,三个文档站点各 2,000 个页面,共 6,000 个页面,之后每周刷新变更的页面。 - **一个研究语料库**,40 万篇新闻和博客文章,500,000 个网页(US$50)就能装下。 积分永不过期,所以为一次性抓取买的 pack 其剩余价值可以留给以后的任务。 ## URL 转 Markdown API 要多少钱? 截至 2026 年 10 月,10,000 个网页 花费 US$3.75,100,000 个网页 花费 US$21.75,1,000,000 个网页 花费 US$74.25。失败的页面和被 robots.txt 拒绝的页面免费。查看[全部 pack](https://webreaderapi.com/zh/pricing/)。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 10,000 个网页 | US$3.75 | US$0.38/千页 | | 入门版 | 50,000 个网页 | US$14.25 | US$0.28/千页 | | 构建 | 100,000 个网页 | US$21.75 | US$0.22/千页 | | 高用量 | 1,000,000 个网页 | US$74.25 | US$0.07/千页 | 所有套餐均包含: 正文提取 · 需要时渲染 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 分钟 ## URL 转 Markdown API:常见问题 ### Markdown 会保留表格和代码块吗? 会。HTML 表格会变成 Markdown 表格,代码块保持围栏格式,页面有标注时保留其语言。非常复杂的表格,例如带合并单元格的,会按行逐一展平。 ### 我可以获取整个页面而不是只取正文吗? 可以。把 `main_content=false` 设为开启,API 会转换页面上的所有内容,包括导航和页脚。这适合首页、分类页和产品列表页,在这些页面上主内容检测器会丢掉有用的部分。 ### 如何让页面长度控制在我的模型上下文窗口之内? 使用 `max_chars`,取值 1,000 到 500,000 字符,按设定长度截断 Markdown。`word_count` 字段会告诉你整篇文章有多长,这样你的 agent 就能决定是否继续往下读。 ### 它能读取登录后或付费墙后的页面吗? 不能。WebReaderAPI 只读取公开页面。它从不登录账户,也从不试图绕过付费墙或封锁;这类页面会返回站点的拒绝结果,并且不收费。 ### 获取密钥需要身份证或银行卡吗? 不需要。WebReaderAPI 不要求身份证、自拍、公司文件,也不需要银行卡。使用账号登录;邮箱为可选。你可以用 BTC, USDT, USDC, ETH, SOL, LTC 从 US$25 充值。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 你能用网页抓取 API 构建什么? > 团队用网页抓取 API 构建什么:AI 智能体的抓取工具、RAG 数据接入、页面变更监控和网页转 Markdown 导出。US$0.07/千页 起。 - URL: https://webreaderapi.com/zh/use-cases/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 人们用干净的页面文本做的事,大多集中在四类任务上:给智能体一种读取方式、为知识库提供数据、监控页面变更、把网站内容转成 Markdown。每一类都有独立的页面,附代码和费用。 **快速回答 — 网页抓取 API 用来做什么?** 团队使用网页抓取 API 为 AI 智能体提供抓取工具、把网站数据接入 RAG 索引、监控公开页面的变更,以及把自己的网站转成 Markdown。**WebReaderAPI** 用一个 API 密钥覆盖全部四类用途:单个页面 `/read`,列表 `/batch`,整站 `/crawl`,截至 2026 年 10 月,每页 1 积分,US$0.07/千页 起。无需 KYC;用加密货币支付。 ## 哪个用例是你的? - **[AI 智能体](https://webreaderapi.com/zh/use-cases/ai-agents/)** — 为 Claude、Cursor、OpenClaw、n8n 或你自己的智能体提供的 read_url 工具,并设置每页的长度上限。 - **[RAG 数据接入](https://webreaderapi.com/zh/use-cases/rag/)** — 把文档和博客整站抓取 (crawl) 成 Markdown 分块,保留标题和来源 URL。 - **[变更监控](https://webreaderapi.com/zh/use-cases/monitoring/)** — 按计划读取定价页、政策和更新日志,并以文本形式获取差异。 - **[网站转 Markdown](https://webreaderapi.com/zh/use-cases/website-to-markdown/)** — 把你自己的网站导出为 Markdown 文件,用于迁移、备份或你自己的助手。 - **[PDF](https://webreaderapi.com/zh/pdf-to-markdown-api/)** — 把报告、论文和手册从链接转换为 Markdown 文本。 - **[llms.txt](https://webreaderapi.com/zh/guides/llms-txt-generator/)** — 通过整站抓取 (crawl) 为你自己的网站构建 llms.txt 文件,每页一行。 ## 每个用例需要哪个 endpoint、多少页? 小团队的典型用量,用来估算第一个积分包的大小。每页 1 积分,页面需要浏览器时 2 积分。 | 用例 | Endpoint | 每月典型页数 | | --- | --- | --- | | 每个任务读取 5 页、每天 100 个任务的智能体 | `/read` | 约 15,000 | | 3 个文档网站的 RAG 索引,每周刷新 | `/crawl`,然后 `/batch` | 初次构建 6,000 页,之后每周几百页 | | 每天监控 200 个竞品和政策页面 | `/batch` | 约 6,000 | | 一次性导出 2,000 页的网站 | `/crawl` | 2,000,一次性 | ## 这四个任务有什么共同问题? 它们都需要网页中可读的内容,而不是它的版式。Agent 会把 token 浪费在菜单上;索引会为样板内容排名;广告轮换时变更监控会误报;迁移会把 cookie 横幅复制到新站点。正文提取在每种情况下都解决了同一个问题。 它们也有相同的限制。登录或付费墙后面的网页无法访问,拒绝 robots 的站点会被跳过且不计费。我们遵守 robots.txt:我们的爬虫以 WebReaderAPI 标识自身,遵循专为其或为所有爬虫编写的规则,不读取网站禁止的页面。被拒绝的页面不扣费。 ## 我该如何在 /read、/batch 和 /crawl 之间选择? 用能完成任务的最小工具。 - **`/read`** 同步返回一个网页,适合逐页决定下一步读什么的 agent。 - **`/batch`** 以后台任务方式读取最多 100 个你已知的 URL,适合监控列表和刷新。 - **`/crawl`** 从一个起始 URL 发现并读取整个站点,最多 10,000 个网页,遵循其 sitemap 和 robots.txt,适合首次构建和导出。 三者接受相同的选项,例如 `format`、`main_content`、`render` 和 `max_chars`,计费方式也相同。 ## 第一个项目大概要花多少钱? 大多数首个项目用一个小 pack 就够了。一个原型 agent、单个文档索引或几百个网页的监控列表,每月大约用几千到一万五千积分。截至 2026 年 10 月,10,000 个网页 花费 US$3.75,50,000 个网页 花费 US$14.25。 积分永不过期,所以为一个可能增长的项目购买更大的 pack,在清淡的月份也不会多花钱。失败的网页和被 robots.txt 拒绝的网页免费。 ## 首个项目的 pack 从小开始;积分可结转,无到期日。1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 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 · 失败和被拒绝的页面不收费 · 积分永不过期 **付款前须知** - 最低充值 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 分钟 ## 使用场景:常见问题 ### 我可以一个 API 密钥用于多个项目吗? 可以,也可以为每个项目创建一个 API 密钥,这样你可以分别查看用量,并撤销其中一个而不影响其他。创建多个 API 密钥,例如每个 agent 或项目一个,并可从控制台撤销其中任意一个。 ### 哪种使用场景需要 JavaScript 渲染? 任何需要读取现代 Web 应用、单页文档站点或首次响应后才加载内容的网页的场景。使用 `render=auto` 时,只有在原始 HTML 文本太少时 API 才会渲染。 ### 有没有 WebReaderAPI 不适合的使用场景? 有:收集关于私人个人的个人数据、读取登录或付费墙后面的内容,以及任何需要绕过站点拒绝的场景。我们的[可接受使用政策](https://webreaderapi.com/zh/acceptable-use/)列出了规则。 ### 开始使用需要身份证明吗? 不需要。WebReaderAPI 不要求身份证明、自拍或文件。充值起价 US$25,可用 BTC, USDT, USDC, ETH, SOL, LTC。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 面向 AI Agent 的网页抓取工具:把页面读取为干净的 Markdown > 面向 AI Agent 的网页抓取工具:通过 MCP、OpenAI tools、LangChain 或 n8n,把任意公开页面读取为带长度上限的 Markdown,起价 US$0.07/千页。加密货币支付。 - URL: https://webreaderapi.com/zh/use-cases/ai-agents/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 一个能搜索但读不了答案正文的 agent,只能引用摘要片段。给它一个能把任意公开 URL 转成简短、干净 Markdown 的工具,它就能读取来源、引用并注明出处,而且在你设定的预算之内。 **快速回答 — 给 AI agent 配上网页抓取工具的最佳方式是什么?** 把网页读取 API 封装成一个工具,接收 URL,返回页面主内容的 Markdown,并按设定长度截断。**WebReaderAPI** 负责读取,需要时渲染 JavaScript,遵守 robots.txt,每页从 US$0.07/千页 起计一个积分(截至 2026 年 10 月)。现成的工具代码涵盖 MCP、OpenAI function calling、LangChain、n8n 和 OpenClaw。无需 KYC;加密货币支付。 ## WebReaderAPI 作为 agent 工具 | 属性 | 值 | | --- | --- | | 工具 | `read_url(url, max_chars)` 调用 `https://webreaderapi.com/api/v1/read` | | 返回 | 主内容的 Markdown,外加标题、作者、日期和字数 | | 长度上限 | `max_chars`,每页 1,000 到 500,000 字符 | | JavaScript 页面 | 页面需要时在无头浏览器中渲染 JavaScript(render=auto),或始终渲染,或从不渲染 | | 拒绝 | 以明确的错误返回,绝不收费 | | 集成 | [MCP](https://webreaderapi.com/zh/docs/mcp/)、[OpenAI](https://webreaderapi.com/zh/docs/openai/)、[LangChain 和 LlamaIndex](https://webreaderapi.com/zh/docs/langchain/)、[n8n](https://webreaderapi.com/zh/docs/n8n/)、[OpenClaw](https://webreaderapi.com/zh/docs/openclaw/) | | 价格 | US$3.75 仅需 10,000 个网页;积分永不过期 | ## 为什么 agent 需要一个阅读器,而不是直接拿原始 HTML? 因为原始 HTML 会把上下文窗口浪费在模型并不需要的东西上。一篇新闻文章或一个文档页到达时,外面裹着导航、脚本、同意横幅和相关链接。原样传进去,它会挤占对话空间,还会让模型引用菜单。 阅读器一次解决三个问题。它只保留正文,它能渲染那些 JavaScript 运行前空白的页面,它还能把 PDF 转成文本。agent 得到的是一个紧凑的 Markdown 块,附上可引用的标题和日期。 ## 为什么内置的 fetch 工具有时会失败? 主要是因为网站拒绝自动化流量。自 2025 年 7 月 1 日起,Cloudflare 默认阻止 AI 爬虫访问新域名,而从 2026 年 9 月 15 日起,其预设在新域名的广告支持页面上阻止“Agent”流量。编码 agent 和助手里的内置工具遇到这些拒绝时,和其他任何客户端一样。 其他失败是技术性的。OpenClaw 的文档(2026 年 10 月 22 日查阅)称,其内置的 web_fetch 用 Readability 提取内容,不运行 JavaScript,输出上限为 20,000 个字符。在浏览器中构建的页面、长文档、慢速服务器和 rate limit 都会让这类工具出错。能渲染页面的阅读器解决了 JavaScript 这一种情况;缓存和耐心解决其余的。拒绝是站长的决定。我们的[网页抓取 403 错误指南](https://webreaderapi.com/zh/guides/web-fetch-403-errors/) 逐一解释了每种情况。 ## 为什么这个工具叫 read_url 而不是 web_fetch? 为了避免和 agent 已有的工具冲突。Claude Code 和 OpenClaw 都自带一个名为 `web_fetch` 的内置工具。同名工具会让模型搞不清自己在调用哪一个。把我们的命名为 `read_url` 可以让两者都可用:agent 可以用内置 fetcher 做快速检查,需要干净的 Markdown、PDF 或 JavaScript 页面时用 `read_url`。 我们文档页上的工具定义都用这个名字,所以你可以切换框架而不用改 prompt。 *Python:带长度上限的紧凑 read_url 工具* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def read_url(url: str, max_chars: int = 12000) -> str: """Return a web page as Markdown for a model, or a short reason it was not read.""" resp = requests.get(API, headers=HEADERS, params={"url": url, "max_chars": max_chars}, timeout=90) data = resp.json() if resp.status_code != 200: err = data.get("error", {}) return "Not read (" + err.get("code", "error") + "): " + err.get("message", "") head = "# " + (data.get("title") or url) + "\nSource: " + data["final_url"] if data.get("published_at"): head += " | Published: " + data["published_at"] return head + "\n\n" + data["markdown"] if __name__ == "__main__": print(read_url("https://example.com/blog/pour-over-coffee", max_chars=2000)[:500]) ``` ## agent 应该如何决定读什么? 给它一个预算和一条规则。三个习惯可以控制成本和上下文: - **少读,读好。**每个问题两到四个来源通常就够带引用回答了。 - **给每页设上限。**先把 `max_chars` 设在 10,000 到 15,000 个字符左右;只有当 `word_count` 显示答案可能更靠后时才调高。 - **报告拒绝。**当页面没读到,让模型说出来,然后换一个来源,而不是重试。 上面的工具会把拒绝返回成一句简单的话,这样模型可以向用户解释。 ## 用 WebReaderAPI 跑一个 agent 要花多少钱? 每页一个积分,页面需要浏览器时两个。一个每天回答 100 个问题、每个问题读 4 页的助手,一个月大约读 12,000 页。截至 2026 年 10 月,50,000 个网页(US$14.25)够用四个月。 积分永不过期,所以一个这周忙、下周闲的 agent 不会浪费月度配额。失败或被 robots.txt 拒绝的页面不收费。 ## 哪个 pack 适合 agent? 在 10,000 个网页 上做原型;当 agent 服务真实用户时,升级到 50,000 个网页 或 100,000 个网页。积分永不过期。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 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 · 失败和被拒绝的页面不收费 · 积分永不过期 **付款前须知** - 最低充值 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 分钟 ## AI agents:常见问题 ### 我可以把 WebReaderAPI 加到 Claude Desktop 或 Cursor 里吗? 可以,通过一个暴露 `read_url` 的小型 MCP server。[MCP 页面](https://webreaderapi.com/zh/docs/mcp/) 上有代码和配置片段;你的 API 密钥放在环境变量里。 ### 它能和 OpenClaw 一起用吗? 可以,作为 MCP server 放在 OpenClaw 内置的 web_fetch 旁边。[OpenClaw 页面](https://webreaderapi.com/zh/docs/openclaw/) 展示了 OpenClaw 自己文档里的命令。 ### agent 能读那些阻止 AI bot 的页面吗? 不能。如果 robots.txt 不允许该页面,API 返回 `blocked_by_robots`;如果网站拒绝,它返回 `target_refused` 并带上该网站的状态。两者都不收费,我们也从不试图绕过拒绝。 ### 怎样防止长页面填满上下文窗口? 设置 `max_chars`。Markdown 会在该长度处截断,`word_count` 会告诉 agent 整页有多长,这样它只在需要时请求更多。 ### 我需要银行卡或身份证吗? 不需要。WebReaderAPI 不要求身份证、自拍、证件或银行卡。以 BTC, USDT, USDC, ETH, SOL, LTC 支付,最低充值 US$25。 ## 来源 1. [新闻稿:AI 爬虫被默认屏蔽](https://www.cloudflare.com/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/) — Cloudflare (2025-07-01) 2. [博客:AI 爬虫与 Agent 的新默认设置](https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/) — Cloudflare (2026-09-15) 3. [网页抓取工具](https://docs.openclaw.ai/tools/web-fetch.md) — OpenClaw (read 2026-10-22) --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 网站变更监控:把公开页面 diff 成干净的 Markdown > 按计划监控公开网页的变化:定时把价格页、政策页和更新日志读取为 Markdown,对文本做 diff 并告警。低至 US$0.07/千页。 - URL: https://webreaderapi.com/zh/use-cases/monitoring/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 比较原始 HTML 时,每次广告或 token 变化都会触发告警。比较正文 Markdown 时,只会标出读者会注意到的变化:新价格、改写的条款、新的更新日志条目。 **快速回答 — 如何监控网页的内容变化?** 按计划把每个页面读取为正文 Markdown,存储文本,并与上一版本比较;只在文本变化时告警。**WebReaderAPI** 每个批量任务最多读取 100 个 URL,移除广告和菜单使其无法触发误报,截至 2026 年 10 月,每页从 US$0.07/千页 起收取一个积分。无需 KYC;用加密货币支付。 ## 用 WebReaderAPI 做监控 | 属性 | 值 | | --- | --- | | Endpoint | `POST https://webreaderapi.com/api/v1/batch`,然后 `GET https://webreaderapi.com/api/v1/jobs/{job_id}` | | 批量大小 | 每个批量任务最多 100 个 URL | | 比较的内容 | 正文 Markdown,不含广告、菜单或横幅 | | 计费 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | | 示例量 | 每天检查 200 个页面 = 每月约 6,000 个页面 | | 价格 | US$3.75 仅需 10,000 个网页;积分永不过期 | ## 哪些内容值得监控? 那些措辞对你的业务很重要、又会在不通知的情况下变化的页面: - 供应商和竞争对手的**定价页**,用于查看新方案和价格变动。 - 你所依赖的**条款、隐私政策和退款政策**,用于捕捉发生变化的条款。 - 你所依赖工具的**变更日志和发布说明**,用于应对破坏性变更。 - 你的产品所链接的**文档页面**,用于快速修复错误的指引。 - 你所在领域监管机构或标准组织发布的**公告**。 把清单限定为公开页面。个人资料和需要登录的页面不在范围内。 ## 为什么对比 Markdown 而不是 HTML? 因为 HTML 一直在变,内容却没变。轮播广告、会话令牌、页脚里的时间戳和 A/B 测试标记,会让同一页面的两次加载都不一样。对 HTML 做对比会把这些噪声变成告警,然后人们就不再读了。 正文 Markdown 在对比之前就去掉了大部分噪声。剩下的就是人实际阅读的文字:标题、段落、列表和表格。对这段文字做对比,结果简短、可读、值得告警。 *Python:检查一组页面并打印变化内容* ```python import difflib import json import os import pathlib import time import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} STORE = pathlib.Path("snapshots.json") URLS = [ "https://example.com/pricing", "https://example.com/legal/terms", "https://example.com/changelog", ] old = json.loads(STORE.read_text(encoding="utf-8")) if STORE.exists() else {} job = requests.post(API + "/batch", headers=HEADERS, json={"urls": URLS}, timeout=60).json() results, 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() results += page.get("results", []) cursor = page.get("next_cursor") if page["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) new = dict(old) for item in results: if "markdown" not in item: print("not read:", item["url"], item.get("error", {}).get("code")) continue before = old.get(item["url"], "") if before and before != item["markdown"]: diff = difflib.unified_diff(before.splitlines(), item["markdown"].splitlines(), lineterm="", n=0) print("CHANGED:", item["url"]) print("\n".join(list(diff)[:40])) new[item["url"]] = item["markdown"] STORE.write_text(json.dumps(new, ensure_ascii=False), encoding="utf-8") ``` ## 多久检查一次,怎么才礼貌? 页面实际多久变化一次,就多久检查一次,不要更频繁。每天适合定价页和变更日志;每周适合政策和文档。每小时读一次的页面,很少比每天读一次提供更多信息,成本却高 24 倍。 WebReaderAPI 会为每个页面遵循 robots.txt,并在整站抓取 (crawl) 任务中遵守站点的 `Crawl-delay`。站点不允许的页面会被跳过且不计费,所以严格的站点会直接从报告中消失。如果你需要访问拒绝 robots 的页面,请询问站点所有者。 ## 监控要花多少钱? 每次检查每个页面一个积分。以下是 2026 年 10 月价格下的几个例子: - **50 个页面,每天:**每月约 1,500 个页面。10,000 个网页(US$3.75)能用六个多月。 - **200 个页面,每天:**每月约 6,000 个页面。50,000 个网页(US$14.25)能用约八个月。 - **1,000 个页面,每周:**每月约 4,300 个页面,接近上一种情况。 需要浏览器的页面消耗两个积分;对已知是纯 HTML 的页面设置 `render=false`,把消耗保持在一个积分。 ## 哪个 pack 适合监控? 用页面数乘以每月检查次数,然后选一个能用几个月的 pack。积分永不过期。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 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 · 失败和被拒绝的页面不收费 · 积分永不过期 **付款前须知** - 最低充值 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 分钟 ## 变更监控:常见问题 ### WebReaderAPI 会发送告警吗? 不会。它读取页面并返回 Markdown;由你的脚本对比版本,并通过邮件、聊天或工单发送告警。上面的代码会把变化的行打印出来,作为起点。 ### 如何避免日期和计数器造成的误报? 对比正文 Markdown,而不是 HTML,并在对比前去掉你已知每次加载都会变化的行,例如“5 分钟前更新”。大多数轮换元素在正文提取时就已经被去掉了。 ### 能监控需要 JavaScript 的页面吗? 能。使用 `render=auto` 时,没有 JavaScript 就是空白的页面会在无头浏览器中渲染,消耗两个积分。无需 JavaScript 就能正常显示的页面仍为一个积分。 ### 能监控整个站点而不是一组页面吗? 能:运行整站抓取 (crawl) 任务而不是批量任务,然后逐页对比。对大型站点,先对比 sitemap 的 `lastmod` 日期,只重读有变化的页面。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 用于 RAG 的网页:将站点转为干净、可分块的 Markdown > 为 RAG 管道提供网页:将文档和博客整站抓取为干净的 Markdown,按标题分块,保留来源 URL。US$0.07/千页 起,无需 KYC,加密货币支付。 - URL: https://webreaderapi.com/zh/use-cases/rag/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 检索的效果取决于你放进索引的内容。带标题、元数据和来源 URL 的干净 Markdown 能给出更好的分块、更少的 token 浪费,以及能引用其来源页面的回答。 **快速回答 — 如何将网页导入 RAG 管道?** 把每个页面读取为其正文的 Markdown,沿标题切分,为每个分块附上来源 URL 和标题,然后嵌入并存储。**WebReaderAPI** 负责读取:每页一个请求,或对整个站点(最多 10,000 个页面)运行一个整站抓取 (crawl) 任务,自 2026 年 10 月起每页一个积分,价格从 US$0.07/千页 起。遵循 robots.txt。无需 KYC;加密货币支付。 ## 使用 WebReaderAPI 进行 RAG 导入 | 属性 | 值 | | --- | --- | | 整站 | `POST https://webreaderapi.com/api/v1/crawl`:每个任务抓取一个网站,最多 10,000 页,遵循其 sitemap、robots.txt 和 Crawl-delay | | URL 列表 | `POST https://webreaderapi.com/api/v1/batch`:每个批量任务最多 100 个 URL | | 按页 | 正文的 Markdown,包含标题、作者、日期、语言、字数 | | PDF | 最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分 | | 计费 | 1 积分 = 读取 1 个页面且无需浏览器;当页面需要浏览器渲染 JavaScript 时为 2 积分。失败的请求,或被网站 robots.txt 拒绝的请求,不扣费 | | 价格 | US$14.25 个积分,50,000 个网页;积分永不过期 | ## 为什么干净的 Markdown 能带来更好的检索效果? 由模板文字构成的分块检索效果很差。当页面切分时仍保留菜单、Cookie 提示文字和页脚,许多分块包含相同的导航词,向量搜索会在不相关的问题中返回它们。正文提取会在你嵌入之前去掉这些噪声。 标题同样重要。以 `## Refund policy` 开头的分块会带着自己的主题,因此嵌入和之后阅读它的模型都知道它在讲什么。纯文本会丢失这个信号;原始 HTML 则把它藏在标记下面。 ## 导入管道长什么样? 五个步骤,无论你用什么向量数据库: 1. **收集 URL。** 抓取整站,或把你已有的 URL 列表作为批次发送。 2. **读作 Markdown。** 文章和文档保留 `main_content=true`;列表页使用 `false`。 3. **按标题分块。** 按 `#`、`##` 和 `###` 切分,再把过长的章节按你的大小上限切分,并保留少量重叠。 4. **附加元数据。** 把 `url`、`title`、`published_at` 和标题路径与每个块一起存储,这样回答能引用来源。 5. **刷新。** 重新读取 sitemap 中 `lastmod` 发生变化的页面,并删除现在返回错误的页面对应的块。 *Python:读取页面并按来源切分成块* ```python import os import re import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} URLS = [ "https://docs.example.com/getting-started", "https://docs.example.com/billing", ] def chunks_for(url, max_len=2000): page = requests.get(API, headers=HEADERS, params={"url": url}, timeout=90).json() if "markdown" not in page: return [] out = [] for section in re.split(r"\n(?=#{1,3} )", page["markdown"]): section = section.strip() heading = section.splitlines()[0] if section else "" for start in range(0, len(section), max_len): out.append({ "text": section[start:start + max_len], "url": page.get("final_url", url), "title": page.get("title"), "heading": heading, }) return out all_chunks = [c for u in URLS for c in chunks_for(u)] print(len(all_chunks), "chunks ready to embed") ``` ## 构建和刷新一个索引要花多少钱? 构建时每页消耗一个积分,需要浏览器的页面两个。刷新只对重新读取的页面计费。以下三个示例按 2026 年 10 月的价格计算: - **某产品的帮助中心**共 800 页,每月刷新变化的页面(约 10%):一次性 800 积分,之后每月约 80。10,000 个网页(US$3.75)可用数年。 - **十个文档站点**各 2,000 页,每周按 5% 刷新:20,000 积分,之后每月约 4,000。50,000 个网页(US$14.25)可覆盖构建和七个月的刷新。 - **一个新闻存档**共 300,000 篇文章,从不变化:一次性 300,000 积分,可放在 500,000 个网页(US$50)中。 嵌入和存储由你自己的服务商计费,不包含在内。 ## 我可以索引那些不希望被索引的站点吗? 不能通过 WebReaderAPI。对我们的爬虫或对所有机器人被 robots.txt 禁止的页面会被跳过,且不计费;声明了 `Content-Signal: ai-input=no` 的站点不会为你读取。对于你自己的站点或阻止机器人的合作方站点,请让站长在 robots.txt 中允许 `WebReaderAPI`;我们的[爬虫页面](https://webreaderapi.com/zh/bot/)列出了需要添加的行。 这对你的用户也很重要。一个引用来源的 RAG 助手,在这些来源同意被读取时更有用。 ## 哪个套餐适合 RAG 项目? 计算构建索引所需的页面数,加上每月刷新量,选择能覆盖几个月的套餐。积分永不过期。 | 套餐 | 数量 | 价格 | 单价 | | --- | --- | --- | --- | | 测试 | 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 分钟 ## RAG 摄取:常见问题 ### 我应该使用多大的块? 先按标题切分,再把超过约 500 到 1,000 token 的章节切分,并保留少量重叠。基于标题的块各自只含一个主题,通常比覆盖整页的固定大小窗口检索效果更好。 ### WebReaderAPI 会创建嵌入或存储向量吗? 不会。WebReaderAPI 读取页面并返回带元数据的 Markdown。你用自己选择的模型进行嵌入,并存入自己的向量数据库;[LangChain 和 LlamaIndex 页面](https://webreaderapi.com/zh/docs/langchain/)展示了这两者。 ### 如何让索引保持最新? 只重新读取发生变化的页面。大多数 sitemap 为每个 URL 带有 `lastmod` 日期;把它与你上次读取的时间比较,将变化的 URL 作为批次发送。现在失败的页面应从索引中移除。 ### 我可以包含同一站点的 PDF 吗? 可以。整站抓取会在同一域名下读取 PDF 链接,并执行相同的 robots.txt 检查。最大 20 MB、100 页的 PDF 文件可转换为 Markdown,每 10 页(不足 10 页按 10 页计)1 积分。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。 --- # 将你的网站转换为 Markdown:抓取并导出每个页面 > 将你的网站转换为 Markdown 文件:抓取你自己的站点,导出每个页面并附带 front matter,用于迁移、备份或你自己的助手。无需 KYC。 - URL: https://webreaderapi.com/zh/use-cases/website-to-markdown/ - 最后更新: 2026-10-22 - 发布者: WebReaderAPI (https://webreaderapi.com) 迁移到静态站点生成器、文档平台或知识库,往往从一个问题开始:如何把我的页面导出为干净的 Markdown?整站抓取一个任务就能做到,标题、日期和 URL 都保留在 front matter 中。 **快速回答 — 如何把整个网站转换为 Markdown?** 抓取你的站点,把每个页面的正文读作 Markdown,并为每个页面写一个 `.md` 文件,在 front matter 中记录标题、URL 和日期。**WebReaderAPI** 每个任务可抓取多达 10,000 页,遵循你的 sitemap 和 robots.txt,截至 2026 年 10 月,从 US$0.07/千页 起每页收取一个积分。下面的 Python 脚本会写出这些文件。无需 KYC;用加密货币支付。 ## 用 WebReaderAPI 导出网站 | 属性 | 值 | | --- | --- | | 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 个网页;积分永不过期 | ## 什么时候 Markdown 导出有用? 只要内容需要离开渲染它的系统时就适用。常见情况: - **迁移。** 从 CMS 迁移到以 Markdown 存储页面的静态站点生成器或文档平台。 - **备份。** 一个可读的已发布页面存档,不依赖任何数据库或主题。 - **你自己的助手。** 把站点的文本输入帮助机器人或内部搜索,每个块都链接到其页面。 - **审计。** 以纯文本读取所有页面,找出过时的说法、有问题的措辞或重复内容。 无论哪种情况,你需要的都是文字和结构,而不是它们周围的主题。 *Python:将你的站点抓取为带 front matter 的 Markdown 文件* ```python 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? 像脚本那样在文件路径中镜像 URL 路径:`/guides/setup/` 变成 `export/guides/setup.md`。把原始 URL 保留在 front matter 的 `source` 中,这样迁移后可以设置重定向,并检查没有丢失内容。 Markdown 中的链接仍指向你当前的 URL。移动之后,一次性替换域名或路径前缀,然后测试部分页面。表格和代码块保持为 Markdown,因此大多数静态生成器无需改动即可渲染。 ## 如果我自己的 robots.txt 阻止了爬虫怎么办? 在导出期间允许我们的 token。WebReaderAPI 只读取 robots.txt 允许 `WebReaderAPI` 或所有机器人读取的内容,包括你自己的站点。添加一个类似 `User-agent: WebReaderAPI` 的组并包含 `Allow: /`,运行抓取,然后可以再移除它。 我们的[爬虫页面](https://webreaderapi.com/zh/bot/)显示了确切的配置行,以及你的服务器日志会显示的 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 · 失败和被拒绝的页面不收费 · 积分永不过期 **付款前须知** - 最低充值 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 分钟 ## 网页转 Markdown:常见问题 ### 我能导出整个页面,包括菜单和页脚吗? 可以。在整站抓取 (crawl) 选项里设置 `main_content=false`,每个文件都会保存转换为 Markdown 的完整页面。大多数迁移更偏好只保留正文,因为新主题会自带导航。 ### 图片会下载吗? 不会。使用 `include_images=true` 时,图片链接会连同 alt 文本保留在 Markdown 中;如果迁移需要图片文件本身,请用你自己的脚本下载。 ### 我能导出不属于我的网站吗? 只能导出其 robots.txt 允许的公开页面,且仅限于其条款和法律允许的用途。对于迁移或备份,请导出你自己的网站或所有者同意的网站。 ### 一个任务能处理多大的网站? 每个整站抓取 (crawl) 任务最多 10,000 页,且限于一个域名内。更大的网站请用 `include_paths` 按栏目拆分,并运行多个任务。 --- WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API,可将任何公开网页转换为干净的 Markdown,用加密货币支付,无需上传身份证件。预付费积分低至 US$0.07/千页,永不过期,且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。