告别低效爬虫:用YOSO-ai的SearchGraph实现AI驱动的深度网页搜索
【免费下载链接】YOSO-ai Python scraper based on AI 项目地址: https://gitcode.com/gh_mirrors/yo/YOSO-ai
传统网页爬虫面临两大痛点:规则编写繁琐且难以应对动态内容,搜索结果碎片化需要人工整合。YOSO-ai的SearchGraph模块通过AI驱动的搜索-抓取-整合全流程自动化,完美解决这些问题。本文将详细介绍如何利用SearchGraph实现智能化的深度网页搜索,从基础配置到高级优化,帮助你快速掌握这一强大工具。
SearchGraph工作原理
SearchGraph是YOSO-ai框架中专门用于互联网搜索的核心模块,其工作流程由三个关键节点构成,形成完整的搜索-抓取-整合流水线。
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" |
| temperature | LLM输出随机性 | 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文件
搜索结果不理想
如果搜索结果质量不高,可尝试:
- 增加
max_results值以获取更多来源 - 调整提示词,使其更具体明确
- 更换不同的LLM模型
- 检查网络连接和API访问权限
性能优化
对于大规模搜索任务,可通过以下方式提升性能:
- 减少
max_results数量 - 使用本地模型(如Ollama)减少API调用延迟
- 降低
verbose级别减少日志输出开销
总结与进阶学习
SearchGraph作为YOSO-ai的核心模块,通过AI驱动的自动化流程,极大简化了从互联网获取结构化信息的过程。无论是市场调研、学术研究还是数据收集,SearchGraph都能显著提高工作效率。
要深入学习SearchGraph和YOSO-ai的更多功能,建议参考以下资源:
- 官方文档:docs/source/index.rst
- 更多示例:examples/目录包含各种使用场景的完整代码
- API参考:scrapegraphai/目录下的模块实现
通过掌握SearchGraph,你可以轻松构建强大的AI驱动搜索应用,应对各种复杂的信息获取需求。
【免费下载链接】YOSO-ai Python scraper based on AI 项目地址: https://gitcode.com/gh_mirrors/yo/YOSO-ai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





