ScrapeGraphAI/Scrapegraph-ai · 上手攻略

  • 仓库:ScrapeGraphAI/Scrapegraph-ai
  • 链接:https://github.com/ScrapeGraphAI/Scrapegraph-ai
  • 分类:ai · scraping · data-engineering
  • 作者:Tom
  • 更新:2026-07-07

这是什么

ScrapeGraphAI 是一个基于 LLM 的 Python 爬虫库,用自然语言描述你想提取什么,它就能自动搞定——无需写 CSS 选择器、XPath,也无需分析网页结构。它背后的设计逻辑是把网页 scraping 当作一个有向图(Graph)来执行:LLM 作为图节点之间的"路由器",决定如何遍历页面、提取什么数据。

简单说:你告诉它要什么,它用 LLM 理解页面内容并返回结构化数据

GitHub Stars 28,106,周增 +371,支持 Python/Node.js 双生态,MIT 许可证。


解决什么问题

  • 传统爬虫门槛高:需要分析 HTML 结构、找选择器、处理反爬——ScrapeGraphAI 用自然语言替代这一切。
  • 网站结构变化导致爬虫失效:规则爬虫依赖选择器,页面改版即崩溃;LLM 爬虫靠语义理解,对结构变化更鲁棒。
  • AI 应用需要结构化网页数据:喂给 Agent 或 RAG pipeline 的数据需要 JSON 格式,ScrapeGraphAI 直接输出结构化数据。
  • 多页面/多数据源聚合:SearchGraph 可以批量抓取搜索结果,SmartScraperMultiGraph 可以并发处理多个 URL。

快速安装

pip install scrapegraphai

# 重要:抓取真实网站需要 Playwright 渲染 JS
playwright install

建议:在虚拟环境中安装,避免与其他库冲突。Python >= 3.10(文档未注明最低版本,建议 3.10+)。


核心用法

SmartScraperGraph — 单页爬虫(最常用)

from scrapegraphai.graphs import SmartScraperGraph
import json

graph_config = {
    "llm": {
        "api_key": "YOUR_OPENAI_API_KEY",
        "model": "openai/gpt-4o-mini",   # OpenAI 格式
    },
    "verbose": True,
    "headless": True,
}

scraper = SmartScraperGraph(
    prompt="提取公司介绍、创始人和社交媒体链接",
    source="https://scrapegraphai.com/",
    config=graph_config
)

result = scraper.run()
print(json.dumps(result, indent=2))

输出示例:

{
  "description": "ScrapeGraphAI transforms websites into clean, organized data...",
  "founders": [
    {
      "name": "Marco Vinciguerra",
      "role": "Founder & Technical Lead",
      "linkedin": "https://linkedin.com/in/perinim/"
    }
  ],
  "social_media_links": {
    "linkedin": "https://linkedin.com/company/101881123",
    "twitter": "https://x.com/scrapegraphai"
  }
}

支持本地模型(Ollama)

graph_config = {
    "llm": {
        "model": "ollama/llama3.2",
        "model_tokens": 8192,
        "format": "json",
    },
    "verbose": True,
    "headless": False,
}

需要本地安装 Ollama 并拉取对应模型:ollama pull llama3.2

其他 Pipeline

Pipeline 用途
SmartScraperGraph 单页提取
SearchGraph 搜索关键词,抓取 Top N 结果
SpeechGraph 单页提取 + 生成音频文件
ScriptCreatorGraph 单页提取 + 生成可复用的 Python 爬虫脚本
SmartScraperMultiGraph 多页并发提取(单 prompt,多 URL)
ScriptCreatorMultiGraph 多页 + 生成脚本

使用 Groq / Azure / Gemini 等

# Groq 示例
graph_config = {
    "llm": {
        "api_key": "YOUR_GROQ_API_KEY",
        "model": "groq/llama-3.2-90b-vision-preview",
    }
}

# Gemini 示例
graph_config = {
    "llm": {
        "api_key": "YOUR_GEMINI_API_KEY",
        "model": "gemini/gemini-2.0-flash",
    }
}

MCP Server(AI Agent 集成)

可通过 Smithery 接入 MCP 生态,集成到 Cursor、Claude Code 等 AI 编程工具中。


典型适用场景

场景 说明
竞品监控 批量抓取竞品页面,提取价格、产品信息
新闻/舆情采集 SearchGraph 抓搜索结果,汇总结构化新闻数据
AI Training Data 构建大规模网页数据集供模型训练
E-commerce 数据 提取商品标题、价格、库存、评论
AI Agent 数据供给 为 RAG pipeline 或 Agent 提供实时网页信息

坑与注意

  1. Playwright 必须安装playwright install 不执行则抓取 JS 渲染页面返回空内容;无 JS 的静态页面可以不加。
  2. LLM Token 消耗:每个页面都会调用 LLM 进行理解和提取,大规模爬取成本需关注;建议用 GPT-4o-mini 或本地 Ollama 模型降低成本。
  3. 反爬/频率限制:ScrapeGraphAI 本身不提供代理池或请求限速,网站反爬仍需自己处理(如降低并发、使用代理)。
  4. 输出格式依赖 Prompt:Prompt 质量直接影响 JSON 输出结构,复杂网站可能需要分步提取。
  5. Headless 模式:默认 headless=True(无浏览器窗口),开发调试可设 False 观察浏览器行为。
  6. 云托管 vs 开源:开源版需要自己运维 Playwright 和 LLM API;ScrapeGraphAI 云服务提供托管版(免运维、有代理池),但按量收费。
  7. LangChain/LlamaIndex 集成:官方有集成文档,但集成版本可能有 API 兼容问题,建议确认版本。

与同类对比

方案 特点 适用场景
ScrapeGraphAI LLM 驱动、自然语言提取、多 pipeline、支持本地模型 需要快速原型、语义复杂的抓取
Playwright/Selenium 无 LLM,规则驱动,需写选择器 已知目标页面结构、需模拟用户交互
Scrapy + Splash 传统爬虫框架,JS 渲染支持 大规模、结构稳定的爬取任务
Firecrawl AI 驱动的网页抓取+结构化输出 快速获取干净内容,适合 RAG
Jina AI Reader 将任意 URL 转为 LLM 友好格式 快速将网页变成 markdown,无需复杂提取

ScrapeGraphAI 的优势在于自然语言控制提取逻辑,不需要写代码定义提取规则,适合 AI Agent 场景;劣势是每次提取都调 LLM,成本和延迟比规则爬虫高。


一句话推荐结论

如果你需要从任意网站提取结构化数据但不想折腾 CSS 选择器,ScrapeGraphAI 是目前开源生态中最直接、最 Pythonic 的方案——描述你要什么,LLM 替你搞定。


来源

  • GitHub README:https://github.com/ScrapeGraphAI/Scrapegraph-ai
  • 官方文档:https://docs.scrapegraphai.com/introduction
  • 官方首页:https://scrapegraphai.com
  • PyPI:https://pypi.org/project/scrapegraphai/
  • MCP Server:https://smithery.ai/server/@ScrapeGraphAI/scrapegraph-mcp
  • Google Colab 示例:https://colab.research.google.com/drive/1sEZBonBMGP44CtO6GQTwAlL0BGJXjtfd