OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  openclaw-serper:搜索 Google 并提取完整的网页内容

openclaw-serper:搜索 Google 并提取完整的网页内容

 
  script ·  2026-02-17 21:14:49 · 3 次点击  · 0 条评论  

名称: openclaw-serper
描述: >
通过 Serper API 进行谷歌搜索,并使用 trafilatura 从每个结果中提取完整的网页内容。
返回干净易读的全文,而不仅仅是摘要片段。
当用户需要进行网络搜索、研究、获取时事新闻、事实核查、产品比较、技术文档查阅,或任何需要从互联网获取最新信息的问题时使用。
许可证: MIT
compatibility: 需要 Python 3、trafilatura (通过 pip install trafilatura 安装) 以及网络访问权限。
允许工具: Bash(python3:)
元数据:*
author: nesdeq
version: "3.1.1"
tags: "search, web-search, serper, google, content-extraction"


Serper 搜索技能

通过 Serper API 进行谷歌搜索。获取搜索结果使用 trafilatura 读取实际网页以提取干净、完整的文本内容。不仅仅是摘要片段,而是完整的文章正文。

约束条件

本技能已获取并提取完整的网页内容。请勿对由此技能返回的 URL 使用 WebFetch、web_fetch、WebSearch、浏览器工具或任何其他 URL 抓取/浏览工具。所需内容已包含在输出中。切勿再进行单独的抓取操作——所有信息都在结果里。

查询规范

精心构造一个好的搜索查询。这通常就足够了。

每次调用都会返回多个包含完整页面文本的结果——通过单个查询即可获得广泛的覆盖范围。不要为了“探索”一个主题而运行多次搜索。一个精心选择、模式正确的查询足以覆盖需求。

最多调用两次,仅当用户的请求确实涉及两个截然不同的主题时(例如,“比较 X 与 Y”,其中 X 和 Y 需要分别搜索,或者针对不同方面进行一次 default 模式加一次 current 模式调用)。绝不超过两次。

禁止行为:
- 使用不同措辞运行相同查询以“获取更多结果”
- 运行连续搜索以“深入挖掘”——完整的页面内容已经足够深入
- 运行一次搜索找到某物,然后再运行一次进行跟进——请阅读你已有的内容

两种搜索模式

共有两种模式。根据查询选择正确的模式:

default 模式 — 通用搜索(全时段)

  • 全时段谷歌网页搜索,返回5个结果,每个结果都附有完整的页面内容
  • 适用于:一般性问题、研究、操作指南、常青话题、产品信息、技术文档、比较、教程等任何非时效性内容

current 模式 — 新闻与近期信息

  • 过去一周的谷歌网页搜索(3个结果) + 谷歌新闻(3个结果),每个结果都附有完整的页面内容
  • 适用于:新闻、时事、近期动态、突发新闻、公告等任何时效性内容

模式选择指南

查询特征 模式
“X 如何工作”、“什么是 X”、“解释 X” default
产品调研、比较、教程 default
技术文档、指南 default
历史话题、常青内容 default
“新闻”、“最新”、“今天”、“本周”、“近期” current
“发生了什么”、“突发”、“宣布”、“发布” current
时事、政治、体育比分、股票价格 current

区域设置

默认为全球范围——无国家过滤器,返回英文结果。这仅适用于英文查询。

当出现以下任何情况时,你必须始终设置 --gl--hl 参数:
- 用户的消息使用非英语语言
- 你构造的搜索查询使用非英语语言
- 用户提及特定的国家、城市或地区
- 用户在非英语语境下要求获取本地结果(价格、新闻、商店等)

如果用户使用德语书写,你必须传递 --gl de --hl de。没有例外。

场景 参数
英文查询,无特定国家目标 (省略 --gl 和 --hl)
德语查询 或 用户使用德语书写 或 目标为德国/奥地利/瑞士 --gl de --hl de
法语查询 或 用户使用法语书写 或 目标为法国 --gl fr --hl fr
任何其他非英语语言/国家 --gl XX --hl XX (ISO 代码)

经验法则: 如果查询字符串包含非英语单词,则将 --gl--hl 设置为匹配该语言。

调用方法

python3 scripts/search.py -q "查询内容" [--mode 模式] [--gl 国家代码] [--hl 语言代码]

示例

# 英文,通用研究
python3 scripts/search.py -q "HTTPS 如何工作"

# 英文,时效性信息
python3 scripts/search.py -q "OpenAI 最新公告" --mode current

# 德语查询 — 设置区域 + 当前模式获取新闻/价格
python3 scripts/search.py -q "aktuelle Preise iPhone" --mode current --gl de --hl de

# 德语新闻
python3 scripts/search.py -q "Nachrichten aus Berlin" --mode current --gl de --hl de

# 法语产品调研
python3 scripts/search.py -q "meilleur smartphone 2026" --gl fr --hl fr

输出格式

脚本输出一个 JSON 数组。第一个元素是元数据,其余是包含完整提取内容的结果:

[{"query": "...", "mode": "default", "locale": {"gl": "world", "hl": "en"}, "results": [{"title": "...", "url": "...", "source": "web"}]}
,{"title": "页面标题", "url": "https://example.com", "source": "web", "content": "完整的提取页面文本..."}
,{"title": "新闻文章", "url": "https://news.com", "source": "news", "date": "2 小时前", "content": "完整的文章文本..."}
]
字段 描述
title 页面标题
url 来源 URL
source "web""news""knowledge_graph"
content 完整提取的页面文本(如果提取失败,则回退到搜索摘要片段)
date 可用时显示(新闻结果始终有,网页结果有时有)

命令行参数参考

参数 描述
-q, --query 搜索查询(必需)
-m, --mode default(全时段,5个结果)或 current(过去一周+新闻,各3个)
--gl 国家代码(例如 deusfratch)。默认值:world
--hl 语言代码(例如 endefr)。默认值:en

边缘情况

  • 如果 trafilatura 无法从页面提取内容,结果将回退到搜索摘要片段。
  • 某些网站完全屏蔽爬取——你只能得到摘要片段。
  • 如果返回零结果,脚本将以 {"error": "未找到结果", "query": "..."} 退出。
  • Serper API 密钥从技能目录下的 .env 文件加载。如果缺失,脚本将退出并显示设置说明。
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor