ScrapeGraphAI-一款基于AI的自动化数据爬虫工具

容器计算MySQL
🕷️ ScrapeGraphAI: 只需抓取一次

ScrapeGraphAI 是一个网络爬虫 Python 库,使用大型语言模型和直接图逻辑为网站和本地文档(XML,HTML,JSON 等)创建爬取管道。只需告诉它您想提取哪些信息,它将为您完成!

概述

ScrapeGraphAI 是一个开源 的 Python 库,旨在革新数据抓取 工具。在当今数据密集的数字环境中,该库通过集成大型语言模型 (LLMs)和模块化的基于图的 管道来自动化从各种来源(例如网站、本地文件等)抓取数据。

只需指定您需要提取的信息ScrapeGraphAI 就能处理其余的工作,提供比传统抓取工具更灵活低维护 的解决方案。

为什么选择 ScrapeGraphAI?

传统的网页抓取工具通常依赖固定模式或手动配置来从网页中提取数据。ScrapeGraphAI 利用 LLMs 的强大功能,能够适应网站结构的变化,减少开发者的频繁干预。这种灵活性确保了即使网站布局发生变化,抓取工具仍然能够正常工作。

我们支持许多 LLMs,包括 GPT、Gemini、Groq、Azure、Hugging Face 等以及可以在本地机器上运行的 Ollama 模型。

架构图

使用 ScrapeGraphAI,您可以使用许多已实现的抓取管道或创建自己的管道。

下图展示了 ScrapeGraphAI 的高层架构:

picture.image

🚀 快速安装

Scrapegraph-ai 的参考页面可以在 PyPI 的官方网站上找到: pypi[1]。


        
            

          
 pip install scrapegraphai
 
        
      

注意 : 建议在虚拟环境中安装该库,以避免与其他库发生冲突 🐱

💻 用法

有三种主要的爬取管道可用于从网站(或本地文件)提取信息:

SmartScraperGraph: 单页爬虫,只需用户提示和输入源; •SearchGraph: 多页爬虫,从搜索引擎的前 n 个搜索结果中提取信息; •SpeechGraph: 单页爬虫,从网站提取信息并生成音频文件。 •SmartScraperMultiGraph: 多页爬虫,给定一个提示 可以通过 API 使用不同的 LLM,如 OpenAIGroqAzureGemini ,或者使用 Ollama 的本地模型。

案例 1: 使用本地模型的 SmartScraper

请确保已安装 Ollama[2] 并使用 ollama pull 命令下载模型。


          
from scrapegraphai.graphs import SmartScraperGraph
          

          
graph_config = {    "llm": {        "model": "ollama/mistral",        "temperature": 0,        "format": "json",  # Ollama 需要显式指定格式
          
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
          
    },    "embeddings": {        "model": "ollama/nomic-embed-text",        "base_url": "http://localhost:11434",  # 设置 Ollama URL
          
    },    "verbose": True,}
          

          
smart_scraper_graph = SmartScraperGraph(    prompt="List me all the projects with their descriptions",    # 也接受已下载的 HTML 代码的字符串
          
    source="https://perinim.github.io/projects",    config=graph_config
          
)
          

          
result = smart_scraper_graph.run()
          
print(result)
      

输出将是一个包含项目及其描述的列表,如下所示:


        
            

          
 {
 'projects'
 :
  
 [{
 'title'
 :
  
 'Rotary Pendulum RL'
 ,
  
 'description'
 :
  
 'Open Source project aimed at controlling a real life rotary pendulum using RL algorithms'
 },
  
 {
 'title'
 :
  
 'DQN Implementation from scratch'
 ,
  
 'description'
 :
  
 'Developed a Deep Q-Network algorithm to train a simple and double pendulum'
 },
  
 ...]}
 
        
      

案例 2: 使用混合模型的 SearchGraph

我们使用 Groq 作为 LLM,使用 Ollama 作为嵌入模型。


          
from scrapegraphai.graphs import SearchGraph
          

          
# 定义图的配置
          
graph_config = {    "llm": {        "model": "groq/gemma-7b-it",        "api_key": "GROQ_API_KEY",        "temperature": 0
          
    },    "embeddings": {        "model": "ollama/nomic-embed-text",        "base_url": "http://localhost:11434",  # 任意设置 Ollama URL
          
    },    "max_results": 5,}
          

          
# 创建 SearchGraph 实例
          
search_graph = SearchGraph(    prompt="List me all the traditional recipes from Chioggia",    config=graph_config
          
)
          

          
# 运行图
          
result = search_graph.run()
          
print(result)
      

输出将是一个食谱列表,如下所示:


        
            

          
 {
 'recipes'
 :
  
 [{
 'name'
 :
  
 'Sarde in Saòre'
 },
  
 {
 'name'
 :
  
 'Bigoli in salsa'
 },
  
 {
 'name'
 :
  
 'Seppie in umido'
 },
  
 {
 'name'
 :
  
 'Moleche frite'
 },
  
 {
 'name'
 :
  
 'Risotto alla pescatora'
 },
  
 {
 'name'
 :
  
 'Broeto'
 },
  
 {
 'name'
 :
  
 'Bibarasse in Cassopipa'
 },
  
 {
 'name'
 :
  
 'Risi e bisi'
 },
  
 {
 'name'
 :
  
 'Smegiassa Ciosota'
 }]}
 
        
      

案例 3: 使用 OpenAI 的 SpeechGraph

您只需传递 OpenAI API 密钥和模型名称。


          
from scrapegraphai.graphs import SpeechGraph
          

          
graph_config = {    "llm": {        "api_key": "OPENAI_API_KEY",        "model": "gpt-3.5-turbo",    },    "tts_model": {        "api_key": "OPENAI_API_KEY",        "model": "tts-1",        "voice": "alloy"
          
    },    "output_path": "audio_summary.mp3",}
          

          
# ************************************************
          
# 创建 SpeechGraph 实例并运行
          
# ************************************************
          

          
speech_graph = SpeechGraph(    prompt="Make a detailed audio summary of the projects.",    source="https://perinim.github.io/projects/",    config=graph_config,)
          

          
result = speech_graph.run()
          
print(result)
      

输出将是一个包含页面上项目摘要的音频文件。

📖 文档

ScrapeGraphAI 的文档可以在这里[3]找到。

还可以查看 Docusaurus 的版本[4]。有使用Docusaurus做SEO管理优化的小伙伴可以尝试一下。

常见问题

什么是 ScrapeGraphAI?

ScrapeGraphAI 是一个开源的 Python 库,利用大型语言模型(LLMs)和图逻辑来自动化创建网站和各种文档类型的抓取管道。

ScrapeGraphAI 与传统抓取工具有何不同?

传统抓取工具依赖固定模式和手动配置,而 ScrapeGraphAI 通过使用 LLMs 来适应网站结构的变化,减少了开发者的频繁干预。

ScrapeGraphAI 支持哪些 LLMs?

ScrapeGraphAI 支持多个 LLMs,包括 GPT、Gemini、Groq、Azure、Hugging Face 以及可以在本地机器上运行的 Ollama 模型。

ScrapeGraphAI 能处理不同的文档格式吗?

是的,ScrapeGraphAI 能够从各种文档格式(如 XML、HTML、JSON 等)中抓取信息。

抓取网站时出现空白或不正确的输出,我该怎么办?

这种问题可能有多种原因,但大多数情况下,您可以尝试以下方法:

•在 graph_config 中将 headless 参数设置为 False。一些依赖 JavaScript 的网站可能需要这样设置。 •检查您的网络连接。低速或不稳定的连接可能导致 HTML 加载不完整。 •尝试使用代理服务器来掩盖您的 IP 地址。请参阅代理轮换[5]部分了解如何配置代理设置。 •使用不同的 LLM 模型。一些模型在某些网站上可能表现更好。 •在 graph_config 中将 verbose 参数设置为 True 以查看更详细的日志。 •使用 Burr Integration[6] 图形化地可视化管道。

如果问题仍然存在,请在 GitHub 仓库上报告。

ScrapeGraphAI 如何处理 LLM 的上下文窗口限制?

通过将大的网站/文档拆分为带有重叠的块,并应用压缩技术来减少标记数。如果存在多个块,我们将对用户提示生成多个答案,并在抓取管道的最后一步将它们合并。

我如何为 ScrapeGraphAI 贡献力量?

您可以通过在 GitHub 仓库中提交错误报告、功能请求或拉取请求来为 ScrapeGraphAI 做出贡献。加入我们的 Discord[7] 社区,并在社交媒体上关注我们!

声明

本文由山行翻译整理自:GitHub - VinciGit00/Scrapegraph-ai: Python scraper based on AI[8],如果对您有帮助,请帮忙点赞、关注、收藏,谢谢~

References

[1] pypi: https://pypi.org/project/scrapegraphai/
[2] Ollama: https://ollama.com/
[3] 这里: https://scrapegraph-ai.readthedocs.io/en/latest/
[4] 版本: https://scrapegraph-doc.onrender.com/
[5] 代理轮换: https://scrapegraph-ai.readthedocs.io/en/latest/scrapers/graph\_config.html#proxy
[6] Burr Integration: https://scrapegraph-ai.readthedocs.io/en/latest/scrapers/graph\_config.html#burr
[7] Discord: https://discord.gg/uJN7TYcpNa
[8] GitHub - VinciGit00/Scrapegraph-ai: Python scraper based on AI: https://github.com/VinciGit00/Scrapegraph-ai/tree/main

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
IDC 大模型应用落地白皮书
大模型技术已深度融入业务实践,各企业期望其释放更大商业价值。 但大模型落地之路面临许多挑战和顾虑。 如何精准对接业务需求与发展蓝图,制定切实可行的大模型落地策略? IDC发布首个大模型应用策略与行动指南 一为您揭晓一
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论