你正在使用 ScraperAPI 或 Scrape.do。你仍在编写解析器。还有更好的方法。
Source: Dev.to
如果你使用像 ScraperAPI、Scrape.do 或 ScrapingBee 这样的爬取 API,你已经解决了最难的抓取问题——代理轮换、验证码、JS 渲染、IP 封锁。
但是,抓取完成后会发生以下情况:
const html = await scraperApi.fetch('https://example.com/products');
// now what?
// cheerio? puppeteer? regex?
// custom parser that breaks every time the site updates?
你会得到原始 HTML,然后花费数小时编写和维护上层解析器。每当网站更新其标记时,你的选择器就会失效。你修复它们,它们又会再次失效。这正是没人会在爬取 API 对比中提到的部分。
两层问题
Web scraping 有两个不同的问题:
Fetching – 获取 HTML,突破机器人检测、CAPTCHA 和 IP 封锁。
Extraction – 将该 HTML 转换为结构化、类型化的数据,以便你的应用实际使用。
ScraperAPI、Scrape.do、ScrapingBee —— 这些工具在第 1 层表现出色。它们在代理基础设施、指纹规避和渲染管线方面投入巨大。这的确很难构建。
然而,第 2 层仍然是你的问题,而且并不是一个小问题。
解析税实际花费
让我们坦诚地看一下维护自定义解析器的成本:
- 初始构建时间 – 根据页面复杂度,从数小时到数天不等
- 持续维护 – 网站会更改其标记,导致选择器失效
- 边缘情况处理 – 缺失字段、空值、类型不一致
- 测试 – 每次站点更新都有可能破坏你的抽取逻辑
- 扩展 – 每新增一个想要抓取的站点,都需要编写一个新解析器
有分析这样描述得很贴切:一种每页成本稍高但几乎不需要解析开销的 AI 抓取器,往往在考虑工程时间后,胜过更便宜的原始 HTML API。
DivParser 作为您的提取层
DivParser 是一个 AI 提取 API。您只需提供 HTML(来自任何来源),并用普通英文描述您想要的内容。它会返回干净、带类型的 JSON。
关键端点是 /v1/parse:
curl -X POST "https://api.divparser.com/v1/parse" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"html": "...your scraped content...",
"schema": "Extract product name, price, rating and availability"
}'
Response
[
{ "name": "Widget Pro", "price": 49.99, "rating": 4.8, "availability": true },
{ "name": "Widget Lite", "price": 19.99, "rating": 4.2, "availability": false }
]
无需选择器。无需 Cheerio。无需正则。无需维护解析器。
组合堆栈
ScraperAPI / Scrape.do
→ handles: proxy rotation, CAPTCHA, JS rendering, IP blocks
→ returns: raw HTML
DivParser /v1/parse
→ handles: intelligent extraction, type casting, schema enforcement
→ returns: clean typed JSON
您可以保留已经信赖的抓取基础设施,并将 DivParser 直接作为提取步骤嵌入。无需编写或维护自定义解析器。
当这种组合有意义时
- 您已经在使用抓取 API,并在解析和选择器维护上花费了大量工程时间。
- 您正在抓取多个不同的网站——每个都有不同的标记。使用自定义解析器需要编写和维护 N 个解析器;而使用 DivParser 每个站点只需一个普通英文模式。
- 您需要严格的输出类型——DivParser 支持 Nestlang,这是一种强类型模式语言,可强制输出结构。将
price定义为数字,就会得到数字,而不是带美元符号的字符串。 - 您正在为 AI 流水线构建——大语言模型需要结构化数据,而不是原始 HTML。抓取器获取页面;DivParser 为您的流水线进行格式化。
DivParser 不会替代的内容
DivParser 不会 替代你的抓取层。它有自己的公共页面抓取器,但如果你已经在为 ScraperAPI 或 Scrape.do 的代理网络和防机器人功能付费,请继续使用它们进行抓取。DivParser 只会去除随后进行的解析步骤。
它也不处理需要身份验证的页面、CAPTCHA 验证或住宅代理轮换——这些仍然是你的抓取层的责任。
试一试
DivParser 提供免费层——无需信用卡。如果您已经在获取 HTML 并在其上编写自定义解析器,值得在您现有的目标之一上进行测试。
divparser.com – 包含文档和 API 参考。
欢迎在评论中提问,了解提取引擎的工作原理或如何将其集成到您现有的技术栈中。