开发者生态
morning
Show HN:我构建了一个 Web-Scraper API,其效率比当前的 API 高 6-7 倍
2026-05-14
1 阅读
polaritymaking
动态 - POST /v1/extract - 812ms - 无头请求curl -X POST https://api.scrapewithruno.com/v1/extract \ -H "X-API-Key: sk_live_Kx9mT3vQ2wRs" \ -d '{ "url" : "https://en.wikipedia.org/wiki/Rachel_McAdams" , "schema" : [ { "field" : "name" , "type" : "string" , "example" : "John Doe" }, { "field" : "knownFor" , "type" : "array" , "example" : [ "Oppenheimer" ] }, { "field" : "netWorth" , "type" : "float" }, { "field" : "birthDate" , "type" : "date" }, { "field" : "birthPlace" , "type" : "string" , "example" : "伦敦,英国" } ] }' RESPONSE { "url" : "https://en.wikipedia.org/wiki/Rachel_McAdams" , "status" : "success" , "render_mode" : "headless" , "data" : { "name" : "Rachel McAdams" , "knownFor" : [ "Mean Girls" , "The Notebook" , "Spotlight" ], "netWorth" : 8000000.0 , "birthDate" : "1978-11-23" , "birthPlace" : "London, Ontario, Canada" } } 功能 抓取变得简单。专为厌倦了照顾损坏的抓取工具和解析原始 HTML 的开发人员而构建。输入 JSON,始终对每个字段进行严格强制:字符串、整数、浮点数、布尔值、日期和数组。控制每个字段以确保不再出现任何模糊的值。纯 JSON 架构 没有 CSS 选择器、XPath 或复杂的 DSL。只需定义字段名称、类型和示例即可创建任何开发人员都可以在 30 秒内编写的架构。静态和动态密钥 将模式绑定到静态密钥一次,以后的请求仅需要 URL。或者,使用动态 API 密钥将自定义架构附加到每个请求,从而实现更高的灵活性。抓取的三种方法 使用 /extract 抓取单个 URL,使用 /batch 扇出到多个 URL,或者使用 /crawl 在同一 API 密钥上使用相同架构进行递归抓取。语义提取 Runo 按含义提取,而不是 DOM 位置。网站重新设计和 HTML 更改永远不会破坏您的管道。显式空值 无法解析的字段返回空值。鲁诺从不安静地放弃,从不遗漏,从不愚蠢地猜测错误的答案。您始终清楚地知道发现了什么和未发现什么。字段提示 在特定请求的情况下,向任何字段添加提示字符串,以将其直接注入 Runo 的提取指令中,确保您准确获得所需内容。自动 JS 渲染透明获取优先策略。当 JS 检测或 403 触发时,自动升级为 Playwright headless。响应中的“render_mode”会准确告诉您运行的路径。 Pro & Scale 计划中包含机器人绕过验证码解决和住宅代理访问。 Runo 会自动检测并升级正确的机器人检测和绕过系统,以确保您获得所需的数据,无论网站或其防御如何。成本核算如何进行?请求计数 1 个 /extract 调用 = 1 个请求。一次 /batch 调用 = 批次中每个 URL 1 个请求。一次 /crawl 调用会预先保留 max_pages 请求,并在完成后退还未使用的部分。因此,访问保留的 100 个页面中的 40 个页面的爬行将退还 60 个页面。 超额政策 仅适用于 Pro 和 Scale 计划,超额是预付押金,最低金额为 5 美元。每美元的请求随着存款规模的增加而提高,并在它们之间线性插值。如何工作 01 定义您的模式 列出您想要的字段。名称、类型、示例并根据需要添加提示。 02 使用您的密钥和架构调用 API POST 到 /extract、/batch 或 /crawl,Runo 会处理其余的事情。 03 Runo 首先获取并渲染纯 HTTP。如果检测到 JS 门控或空响应,则自动升级为无头。 04 获取输入的 JSON 返回 Runo 提取并强制每个字段。干净、经过验证的 JSON。无法解析的字段返回 null。 VS。竞争对手 为什么选择 Runo?通过 Runo,我们试图找到每个 API 抓取工具的痛点并将其转化为优势。以下是我们与竞争对手的比较。竞争对手 Runo 未经科学证明。这更多的是猜测;)。 Runo 与其他网页抓取 API - 功能比较 其他 API Runo 请求返回原始 HTML 或 Markdown,这意味着您仍然需要解析它。返回现成的类型化 JSON。您端需要零后期处理。模式需要 CSS 选择器、XPath 或专有 DSL。 Runo 模式是纯 JSON:字段名称、类型和示例。我们的竞争对手很脆弱。当网站 HTML 结构发生变化时,应用程序就会崩溃。鲁诺(Runo)通过意义进行提取。网站重新设计和 HTML 更改永远不会破坏您的管道。无声的故障不断发生。返回空数据或错误数据并返回 200 OK。无法解析的字段显式返回 null。大量 JS 的网站会默默地返回空内容。 Runo 通过自动升级到无头渲染来解决这个问题,这对调用者来说是透明的。抓取需要单独的产品或额外的设置。 Runo 是一种 API,三种模式:/extract、/batch、/crawl。每次调用的回报不一致。例如。价格以字符串、数字或 null 的形式返回 Runo 强制执行类型强制:浮点数、整数、字符串、布尔值、日期、数组。定价 选择适合您的。我们的免费套餐向所有人免费开放。但是,如果免费套餐确实