你正在使用 ScraperAPI 或 Scrape.do。你仍在编写解析器。还有更好的方法。

发布: (2026年5月5日 GMT+8 02:51)
6 分钟阅读
原文: Dev.to

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 参考。

欢迎在评论中提问,了解提取引擎的工作原理或如何将其集成到您现有的技术栈中。

0 浏览
Back to Blog

相关文章

阅读更多 »

asyncio 陷阱:3 小时 Bug

上周,我的老板让我加速一个旧的 web‑scraping 项目。我想,“没问题——我直接把 asyncio 抛进去,进行并发抓取,理论上……”