mishushakov/llm-scraper

Turn any webpage into structured data using LLMs

解决的问题

从网页中提取结构化信息通常需要编写脆弱的、针对每个网站的抓取代码,这些代码在标记语言发生变化时就会失效。LLM Scraper 用一种更灵活的方法取代了这种方式:它让 LLM 读取页面内容,并按照你定义的类型化 Schema 输出准确的字段。这使得无需硬编码 CSS 选择器或 XPath 表达式,即可提取新闻标题、产品详情或搜索结果等数据。

工作原理

你启动一个 Playwright 浏览器页面,将其指向任何 URL,并定义一个描述你所需数据的 Schema(使用 Zod 或 JSON Schema)。然后,LLM Scraper 以六种格式之一将页面内容提供给 LLM:预处理后的 HTML、原始 HTML、markdown、可读文本(通过 Readability.js)、用于多模态模型的截图,或来自你自定义函数的自定义内容。LLM 重新读取内容并返回与你的 Schema 匹配的 JSON 对象。你还可以运行流式版本,在生成过程中产出部分结果,以及代码生成模式,生成一个独立的 Playwright 脚本,以便在之后无需调用 LLM 即可提取数据。

适用对象

正在构建 Web 抓取流水线,并希望寻找比传统解析更具韧性且由 Schema 驱动的替代方案的开发人员。对于需要将非结构化 Web 数据规范化为整洁记录的项目,或者任何已经在处理 Playwright 并希望添加 LLM 驱动的提取功能的人来说,这特别有用。因为它支持许多 LLM 提供商(OpenAI, Anthropic, Google, Groq, Ollama),因此非常适合已经使用其中一个平台的团队。

亮点

  • 使用 Zod 或 JSON Schema 进行 Schema 优先的提取,具有完整的 TypeScript 类型安全性。
  • 通过 Vercel AI SDK 支持多种 LLM 系列和提供商。
  • 六种向模型提供数据的格式模式——其中包括 HTML、markdown、文本和截图。
  • 用于部分结果的流式输出。
  • 代码生成模式,为你提供一个可重用的 Playwright 脚本,实现更快速的提取。
  • 基于 Playwright 构建,因此可以在任何现代浏览器环境中运行。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目