传统的网页抓取依赖于脆弱的 CSS 选择器和 XPath 表达式,一旦网站更新其标记就会失效。LLM Scraper 采用了根本不同的方法:它使用大型语言模型语义理解页面内容,并以结构化 JSON 的形式精确提取你需要的数据。
由 mishushakov 构建的这个开源工具弥合了非结构化 HTML 与结构化数据管线之间的差距。无需编写和维护选择器,你只需定义一个你想要提取的类型化架构,LLM 会处理其余部分。
核心能力
| 能力 | 描述 |
|---|---|
| 语义解析 | LLM 理解页面内容而非匹配模式 |
| 类型化架构 | 定义你想要提取的确切数据结构 |
| 批量处理 | 高效处理多个页面 |
| 多格式输出 | JSON、CSV 或自定义格式 |
| 无头支持 | 可选的浏览器渲染用于 JavaScript 网站 |
抓取工作流程
flowchart LR
A[目标 URL] --> B[HTML 获取]
B --> C[内容提取]
C --> D[LLM 分析]
D --> E[架构匹配]
E --> F[结构化 JSON]
F --> G[输出]工作流程为你提供的 URL 获取 HTML,提取主要内容,将架构定义和内容一起发送到 LLM,并返回匹配架构的结构化 JSON。
架构定义示例
from pydantic import BaseModel
from typing import List
class Product(BaseModel):
name: str
price: float
description: str
availability: bool
架构使用 Pydantic 模型定义,确保类型安全和验证。LLM 从页面内容中填充这些字段。
性能比较
| 方法 | 设置时间 | 维护 | 准确率 |
|---|---|---|---|
| CSS 选择器 | 30 分钟 | 高(频繁中断) | 99%(有效时) |
| XPath | 45 分钟 | 高 | 99% |
| LLM Scraper | 5 分钟 | 极低 | 95-99% |
| 正则表达式 | 20 分钟 | 高 | 70-85% |
如需更多信息,请访问 LLM Scraper GitHub 仓库 并查看 Pydantic 文档。
常见问题
Q:LLM Scraper 使用哪些 LLM? A:它支持 OpenAI、Anthropic、Ollama 本地模型以及任何兼容 OpenAI 的 API。
Q:LLM Scraper 可以处理 JavaScript 渲染的页面吗? A:可以,通过可选的 Playwright 集成实现无头浏览器渲染。
Q:速率限制如何处理? A:你可以配置请求之间的延迟并设置最大并发请求数。
Q:提取的准确率如何? A:对于定义良好的架构,准确率通常为 95-99%,具体取决于页面复杂度和内容质量。
Q:我可以为不同页面类型使用自定义提示吗? A:可以,你可以为特定页面模式提供自定义提示和架构。
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!