我们使用联盟链接。它们让我们能够维持运营,而您无需承担任何费用。

什么是 AI 数据解析器?

牛津英语词典描述了 解析 就像——开玩笑的!解析意味着将抽象的、杂乱的信息球转化为清晰、结构化的数据集合。当然,你可以自己动手,手动将午餐收据的详细信息——或者亚马逊上出售的69,000页笔记本电脑的详细信息——输入到电子表格中。但人工智能解析功能强大得多,也更适合 抓取网页

AI 数据解析简介

AI 解析 这种方法利用 LLM(大型语言模型)将非结构化信息(例如大量网页上的价格)转化为适合数据库的有序数据。传统方法已经具备了准确性和速度,但 LLM 的灵活性大大降低了维护需求和扩展难度。 

但要真正解释人工智能辅助数据解析的好处,我们必须首先研究人工智能/法学硕士进入该领域之前数据的结构方式。

网页抓取中数据解析的传统方法解析

机器学习前的解析

解析网站的基本模型是,让程序员坐在网页的 HTML 结构前,编写一个基于 CSS、XPath 或正则表达式的算法,从该页面中提取数据。理想情况下,该算法一旦编写完成,就能够可靠地解析同一域名类别下任何页面的所有必要数据。

您获得的解析算法既是静态的又是确定性的:

  • 静止:除非您手动更改它,否则它不会改变。
  • 确定性:在同一个网页上运行它一千次,它总是会得到相同的输出;如果列出的笔记本电脑价格是 850 美元,那么数据库的价格条目将始终是 850 美元。

这种方法有两个缺点:

  • 保养: 静态算法无法处理网页的任何变化——就像你一样,只是没有那么戏剧性。所以,需要有人密切关注网页设计,然后重写算法以适应任何变化。 
  • 不可扩展: 假设一个开发人员需要一天的时间为一个域名编写一个解析器。如果你只从一个域名抓取/解析数据,这还算不错。但如果要覆盖 10,000 个不同的域名呢?那么你要么需要 10,000 名开发人员,要么需要 10,000 天——或者更现实地说,两者兼而有之。哦,别忘了维护。

经典机器学习解析

当机器学习(ML)变得越来越普遍时,人们采用了一种新方法:

  1. 您坐下来,查看网页的 HTML 代码,并将其拆分为元素。 
  2. 您标记元素:这是价格字段,这是产品照片,等等。 
  3. 在让机器学习模型解析网站之前,您需要先在所有这些数据上对其进行训练。 

训练完成后,你会得到一个模型,主要是 领域无关 – 因此,您不需要为每个新领域重新训练它。 

缺点如下:

  • 强化训练: 在机器学习开始解析网站之前,你需要训练模型。而为了训练模型,你需要处理并标记数千个网站。这需要大量的体力劳动。
  • 数据漂移: 网站会随着时间而改变,但进行解析的机器学习无法解释这一点,因此您还必须投资于模型的维护。

视觉解析

视觉解析是对机器学习解析的一种创新,它让 Diffbot 声名鹊起。视觉解析无需深入代码来识别机器学习模型需要查找的元素,而是在浏览器中渲染页面。然后,模型通过计算机视觉解析页面并返回结构化内容。这有点像人类浏览网站时的操作。 

  • Diffbot 方法的最大优点是 你不需要知道如何编写代码来训练模型:您可以按照直观的理解标记网站上的所有片段,然后 ML 模型将从中学习。 
  • 由于它不查看网页的代码,只查看视觉输出,因此它对背景中可能发生的任何肉眼看不见的变化不太敏感。
  • 另一方面,它仍然 需要大量的人力来准备培训材料,并且维护要求也不会消失。 

考虑到这一点,我们可以考虑人工智能网页解析。

使用人工智能进行网页解析

AI 网页解析会涉及到大型语言模型,目前主要有两种方法:基于 LLM 的指令生成和基于 LLM 的 JSON 解析器。

基于 LLM 的指令生成

该方法也可以称为 基于 LLM 的解析器生成 – 它是什么 Oxylabs氧副驾驶 运行。你需要获取目标页面的 HTML,并将其与生成解析器的指令(包含你想要解析的内容)一起输入到 LLM 中。然后,LLM 会为你编写一个解析器,包括 xPath 等所有功能。 

在这种情况下,它取代了程序员手动编写算法。您只需针对域名上的单个页面执行此操作,即可拥有一个静态且确定性的解析器,该解析器能够从同一网站上的任何页面获取数据。 

因此,这种方法:

  • 节省劳动力和时间: 您不需要专家为您想要抓取的每个域名精心编写解析器代码。 
  • 具有一定程度的自我修复能力: 如果您设置了警报,当检测到所抓取的页面发生任何变化时,可以指示 LLM 重写抓取工具,从而使维护速度更快。 

缺点:

  • 每个域都需要一个新的解析器,就像 自己编写解析器 方法。然而,你可以让 AI 编写更多的解析器,从而缓解这个问题。 
  • 在准确性方面,人类编写的算法仍然占据优势。为了使 AI 解析器达到标准(至少在某种程度上),您需要实施验证策略,这会增加复杂性和成本。

基于 LLM 的 JSON 解析器

但是,如何跳过中间人——或者更准确地说是中间代码呢?第二种方法,基于 LLM 的 JSON 解析器,省去了“必须构建解析器”的整个过程。您只需获取页面的 HTML,用 JSON 定义您的抓取需求,然后将它们都输入到廉价的 LLM 中。

人工智能更擅长遵守规则,而不是制定规则。 解析完成后,它会将输出结果呈现为您需要的结构化数据。您可以使用自己的 LLM 来实现这一点!如今,MCP 种类繁多,所有这些数据都会被发送到您的数据库,您无需执行任何操作。 

另外,与静态解析器在遇到网站的任何变化时就会中断不同,无论发生什么情况,LLM 都不会改变 JSON 指令,而是解析网站。

然而,也存在一些缺点:

  • 它是不确定的:您可以要求 LLM 抓取价格,但即使两次抓取同一页面,也不能保证结果总是相同的。 
  • 它也有点贵: 你需要对每个解析的 HTML 进行 AI 查询,而这些查询并不便宜。此外,单个 LLM 请求可能需要 5-8 秒才能处理,而解析器只需 1 秒。 
  • 本地模型需要昂贵的基础设施:你不会在 MacBook 上运行一百万个请求。你必须考虑,在哪个阶段,安装家庭数据抓取系统比直接购买更多代币更经济。

尽管如此,Crawl4AI、SpiderScrape、Firecrawl、AI Studio 等许多公司都采用了这种方法。这是因为在某些情况下,这种方法实际上更有效。 

想象一下场景#1:您有一个域和一百万个解析请求:

  1. 方法一运行一次 AI,获取解析器,然后解析器以低成本抓取这 1 万个页面。 
  2. 第二种方法会进行一百万次 AI 查询——您需要为每个查询付费(请记住:查询比抓取花费更多时间)。

但是场景#2:100,000 个域名和每个域名 10 个请求呢?

  1. 方法一会创建 100,000 万个算法,然后你必须将它们与特定域名匹配,并运行一百万个抓取请求。如果你没有设置自修复算法,那么现在就需要管理你的抓取工具了。 
  2. 方法二在每个页面上运行单个 JSON 请求,此时价格问题取决于您是否使用本地模型、您为基础设施支付了多少费用以及遵循方法一的替代成本。

在结论

AI Web 解析是 Web 解析演进的必然趋势。之前的方法已经非常擅长解析。LLM 的引入解决了扩展和维护的问题,使得扩大 Web 抓取操作的范围并在不断变化的环境下保持其持续运行变得更加容易。

Chris Becker 的照片
克里斯·贝克尔
代理审阅者和测试者。