跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

ScrapeGraphAI:利用大语言模型实现智能网页数据提取

综述由AI生成ScrapeGraphAI 是一个基于大语言模型的 Python 网络爬虫库,旨在简化数据提取过程。该工具允许用户通过自然语言提示词定义抓取目标,自动解析网页结构并返回结构化数据,无需手动编写复杂的解析规则。 ScrapeGraphAI 的核心特性,包括 SmartScraper、SearchGraph 和 SpeechGraph 三种模式。内容涵盖环境安装、Playwright 配置、多种 LLM 提供商(如 Ollama、OpenAI、Groq、Gemini)的接入方法以及 Docker 部署方案。此外,文章还提供了完整的代码示例、提示词优化建议和错误处理策略,帮助用户快速构建智能数据采集管道。

松间照月发布于 2025/2/6更新于 2026/6/322 浏览
ScrapeGraphAI:利用大语言模型实现智能网页数据提取

ScrapeGraphAI:基于大语言模型的智能网络爬虫工具

你是否曾想过,如果有一个工具能够理解你的意图并自动执行复杂的网络数据抓取任务,那会怎样?ScrapeGraphAI 正是这样一个工具。它利用最新的人工智能技术(LLM),让数据提取变得前所未有地简单。

工具概述

ScrapeGraphAI 是一个用于网络抓取的 Python 库。它使用大语言模型(LLM)和直接图(Direct Graph)为网站、文档和 XML 文件创建抓取管道。用户只需输入想要提取的信息描述(Prompt),系统便会自动解析页面结构并返回结果。

核心优势

  • 简单易用:只需配置 API 密钥,即可在几秒钟内处理大量网页。
  • 开发便捷:仅需几行代码即可完成复杂的数据清洗与提取工作。
  • 专注业务逻辑:节省数小时的手动编写解析器时间,将精力集中在业务需求上。

快速开始

环境准备

确保已安装 Python 3.8+ 环境。

1. 安装库

使用 pip 安装 scrapegraphai:

pip install scrapegraphai
2. 安装浏览器自动化工具

为了支持客户端渲染(由 JavaScript 动态渲染)的网页,需要安装 Playwright:

playwright install

Playwright 是一个强大的 Python 库,仅用一个 API 即可自动执行 Chromium、Firefox、WebKit 等主流浏览器的自动化操作。

在线示例

官方提供了 Streamlit 演示和 Google Colab 笔记本供快速体验:

  • Streamlit Demo: https://scrapegraph-ai-demo.streamlit.app/
  • Google Colab: https://colab.research.google.com/drive/1sEZBonBMGP44CtO6GQTwAlL0BGJXjtfd

核心功能模块

ScrapeGraphAI 内置了三种主要的网页爬取流程,适用于不同场景:

  1. SmartScraperGraph:单页抓取工具。仅需用户提示词和输入源,适合从特定 URL 提取结构化数据。
  2. SearchGraph:多页抓取工具。从搜索引擎的前 n 个搜索结果中提取信息,适合竞品分析或市场调研。
  3. SpeechGraph:单页抓取工具。从网站提取信息并生成音频文件,适合无障碍访问或内容播报。

使用示例

ScrapeGraphAI 支持通过 API 使用不同的 LLM,例如 OpenAI、Groq、Azure 和 Gemini,或使用 Ollama 的本地模型。

示例一:使用 Ollama API 提取信息

此示例展示了如何配置本地运行的 Ollama 模型进行数据提取。

from scrapegraphai.graphs import SmartScraperGraph
import os

graph_config = {
    : {
        : ,
        : ,
        : ,  
        : ,  
    },
    : {
        : ,
        : ,  
    }
}

smart_scraper_graph = SmartScraperGraph(
    prompt=,
    
    source=,
    config=graph_config
)

result = smart_scraper_graph.run()
(result)
"llm"
"model"
"ollama/mistral"
"temperature"
0
"format"
"json"
# Ollama needs the format to be specified explicitly
"base_url"
"http://localhost:11434"
# set Ollama URL
"embeddings"
"model"
"ollama/nomic-embed-text"
"base_url"
"http://localhost:11434"
# set Ollama URL
"List me all the articles"
# also accepts a string with the already downloaded HTML code
"https://perinim.github.io/projects"
print

示例二:使用 ChatGPT (OpenAI) API 提取信息

from scrapegraphai.graphs import SmartScraperGraph

OPENAI_API_KEY = "YOUR_API_KEY"

graph_config = {
    "llm": {
        "api_key": OPENAI_API_KEY,
        "model": "gpt-3.5-turbo",
    }
}

smart_scraper_graph = SmartScraperGraph(
    prompt="List me all the articles",
    source="https://perinim.github.io/projects",
    config=graph_config
)

result = smart_scraper_graph.run()
print(result)

示例三:使用 Groq API 提取信息

Groq 提供极快的推理速度,适合对延迟敏感的场景。

from scrapegraphai.graphs import SmartScraperGraph
from scrapegraphai.utils import prettify_exec_info
import os

groq_key = os.getenv("GROQ_APIKEY")

graph_config = {
    "llm": {
        "model": "groq/gemma-7b-it",
        "api_key": groq_key,
        "temperature": 0
    },
    "embeddings": {
        "model": "ollama/nomic-embed-text",
        "temperature": 0,
        "base_url": "http://localhost:11434",
    },
    "headless": False
}

smart_scraper_graph = SmartScraperGraph(
    prompt="List me all the projects with their description and the author.",
    source="https://perinim.github.io/projects",
    config=graph_config
)

result = smart_scraper_graph.run()
print(result)

示例四:使用 Gemini API 提取信息

from scrapegraphai.graphs import SmartScraperGraph

GOOGLE_APIKEY = "YOUR_API_KEY"

# Define the configuration for the graph
graph_config = {
    "llm": {
        "api_key": GOOGLE_APIKEY,
        "model": "gemini-pro",
    }
}

# Create the SmartScraperGraph instance
smart_scraper_graph = SmartScraperGraph(
    prompt="List me all the articles",
    source="https://perinim.github.io/projects",
    config=graph_config
)

result = smart_scraper_graph.run()
print(result)

示例五:使用 Docker 部署本地模型

在使用本地模型之前,建议先创建 Docker 容器以确保环境一致性。

docker-compose up -d
docker exec -it ollama ollama pull stablelm-zephyr

您可以使用 Ollama 上可用的模型或您自己的模型来代替 stablelm-zephyr。

from scrapegraphai.graphs import SmartScraperGraph

graph_config = {
    "llm": {
        "model": "ollama/mistral",
        "temperature": 0,
        "format": "json",  # Ollama needs the format to be specified explicitly
        # "model_tokens": 2000, # set context length arbitrarily
    }
}

smart_scraper_graph = SmartScraperGraph(
    prompt="List me all the articles",
    source="https://perinim.github.io/projects",
    config=graph_config
)

result = smart_scraper_graph.run()
print(result)

高级配置与最佳实践

1. 提示词工程 (Prompt Engineering)

ScrapeGraphAI 的效果很大程度上取决于 Prompt 的质量。建议遵循以下原则:

  • 明确性:清晰定义需要提取的字段名称和数据类型。
  • 结构化:要求输出 JSON 格式,便于后续程序处理。
  • 上下文:如果页面包含多个部分,指定具体的区域或条件。

2. 错误处理

在实际生产环境中,网络请求可能会失败或 LLM 可能返回非预期格式。建议添加异常捕获机制:

try:
    result = smart_scraper_graph.run()
except Exception as e:
    print(f"Error occurred: {e}")
    # Implement retry logic or fallback here

3. 性能优化

  • 缓存:对于重复请求的 URL,考虑缓存响应以减少 API 调用成本。
  • 并发:ScrapeGraphAI 支持异步操作,可在处理大量 URL 时提高吞吐量。
  • 模型选择:对于简单任务,使用轻量级模型(如 Mistral 7B)可显著降低成本;对于复杂逻辑,再使用 GPT-4 等大模型。

总结

随着 AI 技术的不断发展,传统爬虫工具正面临新的机遇与挑战。ScrapeGraphAI 通过将大语言模型集成到数据提取流程中,极大地降低了非结构化数据的处理门槛。未来,更多智能化的工具将会涌现,帮助开发者更高效地应对海量数据处理需求。

目录

  1. ScrapeGraphAI:基于大语言模型的智能网络爬虫工具
  2. 工具概述
  3. 核心优势
  4. 快速开始
  5. 环境准备
  6. 1. 安装库
  7. 2. 安装浏览器自动化工具
  8. 在线示例
  9. 核心功能模块
  10. 使用示例
  11. 示例一:使用 Ollama API 提取信息
  12. 示例二:使用 ChatGPT (OpenAI) API 提取信息
  13. 示例三:使用 Groq API 提取信息
  14. 示例四:使用 Gemini API 提取信息
  15. Define the configuration for the graph
  16. Create the SmartScraperGraph instance
  17. 示例五:使用 Docker 部署本地模型
  18. 高级配置与最佳实践
  19. 1. 提示词工程 (Prompt Engineering)
  20. 2. 错误处理
  21. 3. 性能优化
  22. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 2023 年度编程语言榜单发布:Python 连续八年位居榜首
  • RexUniNLU 零样本 NLU 教程:WebUI 上传文件及批量 NER 可视化
  • Python 中的 == 与 is:本质区别与最佳实践
  • 动手学大模型应用开发:基于 LangChain 构建个人知识库助手
  • 大模型核心技术解析:Prompt Engineering、Function Calling、RAG 与 Fine-tuning
  • 编程知识图谱(PKG)助力 LLM 代码生成,检索增强更精准
  • Android 核心源码与 Framework 精编解析指南
  • Python 程序性能优化的 7 个关键习惯
  • VSCode 扩展工具 Copilot MCP 使用教程
  • 2025 AI 产业全景深度解析与未来趋势洞察
  • OpenAI 发布 GPT-5.3 Instant:幻觉率降低 26.8%,2026 全球 AI 模型排行
  • Seedream 4.0 深度测评:多模态 AI 图像生成与编辑实战
  • 无人机低空智能巡飞巡检平台:全域感知与智能决策
  • 前缀和算法实战:和为 K 的子数组与和可被 K 整除的子数组
  • Linux 进程等待与程序替换详解:僵尸进程防治及 exec 函数应用
  • Kotlin 语言核心特性与 Android 开发实战详解
  • Amazon SageMaker 部署 AIGC 应用:模型训练、优化与 Web 前端集成
  • MySQL 分库分表实战:垂直水平拆分策略与核心难题解决
  • 电科金仓发布融合数据库 KES V9 2025 及 AI 产品体系
  • 自学网络安全:学习误区、路线规划与资源推荐

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online