icon
password
图片
官网地址
date
商店地址
type
status
slug
summary
tags
category
视频地址

项目概述

项目名称: Scrapegraph-ai
项目类型: Python 网络爬虫
主要技术: 人工智能(AI)、机器学习
用途: 自动化抓取网页数据

可能的功能

  1. 智能识别网页结构: 使用机器学习算法识别网页布局和数据模式,以确定数据抓取的最佳方法。
  1. 自适应不同网站: 能够适应不同网站的结构变化,减少因网站更新导致的爬虫失效。
  1. 数据清洗和处理: 利用 AI 技术对抓取的数据进行清洗和格式化,以便于进一步的分析和使用。
  1. 避免反爬虫机制: 通过模拟正常用户行为,降低被网站反爬虫机制检测到的风险。
  1. 用户友好的界面: 提供简单易用的界面,允许用户自定义爬虫任务和参数。
  1. 可扩展性: 支持插件或扩展,以适应特定的数据抓取需求。
  1. 结果输出: 支持多种数据输出格式,如 JSON、CSV 等。

应用场景

  • 市场研究: 抓取竞争对手的价格和产品信息。
  • 社交媒体分析: 收集社交媒体上的用户反馈和趋势。
  • 新闻聚合: 从多个新闻源抓取并聚合新闻内容。
  • 学术研究: 收集学术文章和研究数据。

相关介绍

Scrapegraph-ai 的标准结构中,一个图由多个节点组成,每个节点都有其自己的功能。这个库的主要节点包括:
  • base_node:所有节点派生的抽象类。
  • conditional_node:创建条件分支。
  • fetch_html_node:执行 HTML 请求。
  • generate_answer_node:使用基于语言模型(LLM)根据用户输入和从网页提取的内容生成答案。
  • get_probable_tags_node:利用语言模型识别文档中可能包含与用户查询相关信息的 HTML 标签。
  • image_to_text_node:给定一张图片,检索文本。
  • text_to_speech_node:给定文本,将其保存为 .mp3 文件。
📄️🐸 BaseNode 模块 BaseNode 模块提供了一个抽象的基类,用于在基于图的工作流中执行特定动作。
📄️🐷 ConditionalNode 模块 ConditionalNode 模块实现了一个节点,该节点根据图中状态指定键的存在和内容来确定图中执行流程的下一步。它通过向执行过程添加基于条件的逻辑来扩展 BaseNode 类。
📄️🦊 FetchNode 模块 FetchNode 模块实现了一个节点,负责获取指定 URL 的 HTML 内容或加载各种类型的文档(如 JSON、XML、CSV 或 PDF),并使用此内容更新图的状态。它使用 ChromiumLoader 异步从网页获取内容,确保代理保护。
📄️🐼 GenerateAnswerCSVNode 模块 GenerateAnswerCSVNode 模块实现了一个节点,负责使用语言模型(LLM)根据用户输入和从网页提取的内容生成答案。它从用户输入和抓取的内容构建提示,将其提供给 LLM,并解析 LLM 的响应以产生答案。
📄️🐔 GenerateAnswerNode 模块 GenerateAnswerNode 模块实现了一个节点,负责使用大型语言模型(LLM)根据用户输入和从网页提取的内容生成答案。它从用户输入和抓取的内容构建提示,将其提供给 LLM,并解析 LLM 的响应以产生答案。
📄️🐯 GenerateAnswerOmniNode 模块 GenerateAnswerOmniNode 模块实现了一个节点,负责使用大型语言模型(LLM)根据用户输入和从网页提取的内容生成答案。它从用户输入和抓取的内容构建提示,将其提供给 LLM,并解析 LLM 的响应以产生答案。
📄️🪱 GenerateAnswerPDFNode 模块 GenerateAnswerPDFNode 模块实现了一个节点,负责使用语言模型(LLM)根据用户输入和从网页提取的内容生成答案。它从用户输入和抓取的内容构建提示,将其提供给 LLM,并解析 LLM 的响应以产生答案。
📄️🐭 GenerateScraperNode 模块 GenerateScraperNode 模块实现了一个节点,负责使用指定库为网站生成一个 Python 脚本进行抓取。它接受用户的提示和抓取的内容作为输入,并生成一个 Python 脚本以提取用户请求的信息。
📄️🦆 GetProbableTagsNode 模块 GetProbableTagsNode 模块实现了一个节点,负责利用语言模型识别文档中可能包含与用户查询相关信息的 HTML 标签。该节点生成描述任务的提示,将其提交给语言模型,并处理输出以产生可能的标签列表。
📄️😆 ImageToTextNode 模块 ImageToTextNode 模块实现了一个节点,负责从 URL 列表中检索图像,并使用图像到文本模型返回图像的描述。
📄️🦌 MergeAnswersNode 模块 MergeAnswersNode 模块实现了一个节点,负责将多个图实例的答案合并为一个单一答案。
📄️🐐 ParseNode 模块 ParseNode 模块实现了一个节点,负责解析文档中的 HTML 内容,并将其分割成块以进行进一步处理。
📄️🐖 RAGNode 模块 RAGNode 模块实现了一个节点,负责压缩输入令牌并将文档存储在向量数据库中以供检索。相关块存储在状态中。
📄️🦂 RobotsNode 模块 RobotsNode 模块实现了一个节点,负责根据 robots.txt 文件检查网站是否可以抓取。它使用语言模型确定网站是否允许抓取提供的路径。
📄️🦑 SearchInternetNode 模块 SearchInternetNode 模块实现了一个节点,根据用户的输入生成搜索查询并在互联网上搜索相关信息。该节点为语言模型构建提示,提交它,并处理输出以生成搜索查询。然后使用搜索查询在互联网上找到相关信息,并使用生成的答案更新状态。
📄️🦖 SearchLinkNode 模块 SearchLinkNode 模块实现了一个节点,可以为用户提示过滤网页内容中的相关链接。它期望已经在网页上抓取了链接,因此非常适合在 FetchNode 之后使用。
📄️🦐 TextToSpeechNode 模块 TextToSpeechNode 模块使用指定的文本到语音模型将文本转换为语音。

官方中文介绍文档

ScrapeGraphAI 是一个网络爬虫 Python 库,使用大型语言模型和直接图逻辑为网站和本地文档(XML,HTML,JSON 等)创建爬取管道。
只需告诉库您想提取哪些信息,它将为您完成!
notion image
🚀 快速安装
Scrapegraph-ai 的参考页面可以在 PyPI 的官方网站上找到: pypi
pip install scrapegraphai
注意: 建议在虚拟环境中安装该库,以避免与其他库发生冲突 🐱
🔍 演示
官方 Streamlit 演示:
在 Google Colab 上直接尝试:
📖 文档
ScrapeGraphAI 的文档可以在这里找到。
还可以查看 Docusaurus 的版本
💻 用法
有三种主要的爬取管道可用于从网站(或本地文件)提取信息:
  • SmartScraperGraph: 单页爬虫,只需用户提示和输入源;
  • SearchGraph: 多页爬虫,从搜索引擎的前 n 个搜索结果中提取信息;
  • SpeechGraph: 单页爬虫,从网站提取信息并生成音频文件。
  • SmartScraperMultiGraph: 多页爬虫,给定一个提示 可以通过 API 使用不同的 LLM,如 OpenAIGroqAzure 和 Gemini,或者使用 Ollama 的本地模型。
案例 1: 使用本地模型的 SmartScraper
请确保已安装 Ollama 并使用 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)
输出将是一个包含页面上项目摘要的音频文件。

注意事项

使用网络爬虫时,应遵守目标网站的 robots.txt 文件规定,尊重版权和隐私政策,避免对网站服务器造成过大负担。
为了获得更详细的信息,建议直接访问 Scrapegraph-ai 的 GitHub 仓库页面,那里通常会有项目的 README 文件、文档和示例代码,这些资源可以帮助您更全面地了解项目的功能和使用方法。
 
视频翻译新纪元 - pyvideotrans 工具stable-audio-tools

暂无相关链接
囍玩君
囍玩君
一个喜欢玩游戏的大龄程序员
公告
icon
password
图片
官网地址
date
商店地址
type
status
slug
summary
tags
category
视频地址
🎉欢迎来到91升级小站🎉
囍玩君喜欢搜罗网上的游戏资源.
在这里分享.有需要的可以留言.
本站内容均来自于网络.
没有服务器.
内容都来源于Notion笔记