告别低效爬虫:用YOSO-ai的SearchGraph实现AI驱动的深度网页搜索

告别低效爬虫:用YOSO-ai的SearchGraph实现AI驱动的深度网页搜索

【免费下载链接】YOSO-ai Python scraper based on AI 【免费下载链接】YOSO-ai 项目地址: https://gitcode.com/gh_mirrors/yo/YOSO-ai

传统网页爬虫面临两大痛点:规则编写繁琐且难以应对动态内容,搜索结果碎片化需要人工整合。YOSO-ai的SearchGraph模块通过AI驱动的搜索-抓取-整合全流程自动化,完美解决这些问题。本文将详细介绍如何利用SearchGraph实现智能化的深度网页搜索,从基础配置到高级优化,帮助你快速掌握这一强大工具。

SearchGraph工作原理

SearchGraph是YOSO-ai框架中专门用于互联网搜索的核心模块,其工作流程由三个关键节点构成,形成完整的搜索-抓取-整合流水线。

SearchGraph工作流程图

SearchGraph的核心架构包含以下三个节点:

  • SearchInternetNode:负责根据用户提示执行互联网搜索,获取相关URL列表
  • GraphIteratorNode:使用SmartScraperGraph迭代处理每个URL,提取结构化数据
  • MergeAnswersNode:整合多个来源的结果,生成最终回答

这种架构使SearchGraph能够自动完成从关键词搜索到结果整合的全流程,无需人工干预。相关实现代码可参考scrapegraphai/graphs/search_graph.py

快速开始:5分钟实现AI搜索

环境准备

使用SearchGraph前需确保已安装必要依赖,推荐通过项目根目录的requirements.txt安装:

pip install -r requirements.txt

OpenAI版本实现

以下是使用OpenAI模型的SearchGraph示例,代码位于examples/search_graph/openai/search_graph_openai.py

import os
from dotenv import load_dotenv
from scrapegraphai.graphs import SearchGraph

load_dotenv()  # 加载环境变量

# 配置LLM模型和搜索参数
graph_config = {
    "llm": {
        "api_key": os.getenv("OPENAI_API_KEY"),
        "model": "openai/gpt-4o",
    },
    "max_results": 2,  # 限制搜索结果数量
    "verbose": True,   # 启用详细日志
}

# 创建SearchGraph实例并运行
search_graph = SearchGraph(
    prompt="List me Chioggia's famous dishes",  # 搜索提示
    config=graph_config
)

result = search_graph.run()
print(result)

Ollama本地部署版本

如果希望本地运行而不依赖外部API,可使用Ollama版本,代码位于examples/search_graph/ollama/search_graph_ollama.py

from scrapegraphai.graphs import SearchGraph
from scrapegraphai.utils import convert_to_csv, convert_to_json

# 配置本地LLM模型
graph_config = {
    "llm": {
        "model": "ollama/llama3",  # 使用本地Ollama模型
        "temperature": 0,          # 控制输出随机性
    },
    "max_results": 5,  # 最多返回5个搜索结果
    "verbose": True,
}

# 创建并运行SearchGraph
search_graph = SearchGraph(
    prompt="List me the best escursions near Trento",
    config=graph_config
)

result = search_graph.run()
print(result)

# 结果导出为CSV和JSON
convert_to_csv(result, "trento_escursions")
convert_to_json(result, "trento_escursions")

运行后,SearchGraph会自动执行搜索、抓取和结果整合,并将结果保存为CSV和JSON格式,方便后续分析使用。

高级配置与优化

搜索参数调优

SearchGraph提供多种配置选项以优化搜索结果质量,主要包括:

参数名作用推荐值
max_results控制搜索结果数量3-5(平衡质量与速度)
search_engine选择搜索引擎"serper"(默认)或"duckduckgo"
temperatureLLM输出随机性0(事实性搜索)-0.7(创造性搜索)
verbose启用详细日志True(调试)/False(生产)

配置示例:

graph_config = {
    "llm": {
        "model": "ollama/llama3",
        "temperature": 0.3,
    },
    "max_results": 3,
    "search_engine": "duckduckgo",  # 使用不同搜索引擎
    "verbose": False,
    "serper_api_key": "your_serper_key"  # 如使用Serper引擎需提供API密钥
}

结果整合与导出

SearchGraph提供多种结果处理工具,位于scrapegraphai/utils/目录:

  • 数据转换:convert_to_csv()和convert_to_json()支持结果导出
  • 执行信息:prettify_exec_info()格式化执行日志,便于调试
  • 结果分析:dict_content_compare.py提供结果比较功能

使用示例:

from scrapegraphai.utils import prettify_exec_info

# 获取执行信息
graph_exec_info = search_graph.get_execution_info()
print(prettify_exec_info(graph_exec_info))

# 查看搜索过的URL
print("Considered URLs:", search_graph.get_considered_urls())

自定义搜索节点

对于高级用户,可通过修改SearchGraph的节点配置实现自定义功能。例如,调整搜索节点的搜索参数或修改合并节点的提示模板,相关代码位于scrapegraphai/nodes/目录下的SearchInternetNode和MergeAnswersNode实现。

实际应用场景

市场调研自动化

SearchGraph非常适合市场调研场景,例如收集特定产品的用户评价:

search_graph = SearchGraph(
    prompt="收集2025年最新笔记本电脑型号的专业评测和用户反馈",
    config={
        "llm": {"model": "openai/gpt-4o"},
        "max_results": 8,
        "verbose": True
    }
)
result = search_graph.run()
convert_to_csv(result, "laptop_reviews_2025")

学术研究支持

研究人员可利用SearchGraph快速收集文献和研究数据:

search_graph = SearchGraph(
    prompt="查找2024-2025年间关于AI在气候模型中的应用的最新研究论文摘要",
    config={
        "llm": {"model": "ollama/llama3:70b"},
        "max_results": 10,
        "search_engine": "google_scholar"  # 配置学术搜索引擎
    }
)

常见问题与解决方案

API密钥管理

为避免硬编码API密钥,推荐使用.env文件和dotenv库:

# 在项目根目录创建.env文件
# OPENAI_API_KEY=your_api_key_here

from dotenv import load_dotenv
load_dotenv()  # 自动加载.env文件

搜索结果不理想

如果搜索结果质量不高,可尝试:

  1. 增加max_results值以获取更多来源
  2. 调整提示词,使其更具体明确
  3. 更换不同的LLM模型
  4. 检查网络连接和API访问权限

性能优化

对于大规模搜索任务,可通过以下方式提升性能:

  • 减少max_results数量
  • 使用本地模型(如Ollama)减少API调用延迟
  • 降低verbose级别减少日志输出开销

总结与进阶学习

SearchGraph作为YOSO-ai的核心模块,通过AI驱动的自动化流程,极大简化了从互联网获取结构化信息的过程。无论是市场调研、学术研究还是数据收集,SearchGraph都能显著提高工作效率。

项目架构图

要深入学习SearchGraph和YOSO-ai的更多功能,建议参考以下资源:

通过掌握SearchGraph,你可以轻松构建强大的AI驱动搜索应用,应对各种复杂的信息获取需求。

【免费下载链接】YOSO-ai Python scraper based on AI 【免费下载链接】YOSO-ai 项目地址: https://gitcode.com/gh_mirrors/yo/YOSO-ai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值