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