基于 nodriver 的浏览器自动化 skill,专为 纯文本 agent 设计。
与搜索工具的关系:优先用搜索工具快速拉取公开摘要;若搜索 搜不到、结果过时/片面、或必须进入具体网站(站内搜索、动态页、表格详情)才能拿到答案,再 查阅并启用本 SKILL,用浏览器补齐信息。
所有公开方法均返回结构化 文本快照,格式统一为:
text
[操作摘要]
---
Title: 页面标题
URL: https://...
---
Interactive elements (index[:]info):
0[:] input type="text" placeholder="搜索"
1[:] button | 百度一下
2[:] a href="https://..." | 新闻
...
---
Page Text:
页面可见文本...
agent 通过读取快照中的 元素索引 来引用元素,无需理解 HTML 或 CSS 选择器。每次操作后快照自动刷新,索引始终对应当前页面状态。
大内容溢出处理:页面文本超过 10000 字符或元素超过 100 个时,超出部分自动保存到文件,快照中提示路径,可用 jupyter_cell_exec 工具 读取完整内容。
python
import sys, os
sys.path.insert(0, os.path.join(os.getenv("skill_path"), "browser", "scripts"))
import browser
python
result = browser.navigate(
url="https://www.baidu.com",
wait_for=None, # 可选:等待某 CSS 选择器出现后再返回
)
print(result)
python
result = browser.click(element_index=1) # 索引来自上次快照的 Interactive elements
print(result)
python
result = browser.fill(
element_index=0,
text="搜索内容",
press_enter=False, # 是否回车提交
)
print(result)
实现上会先点击目标输入框、短暂等待再 fill 覆盖内容;若遇动态展开/联想框导致失败,可先 browser.click 激活再 browser.fill,或调用 browser.get_interactive_elements() 刷新索引后重试。
python
result = browser.select_option(
element_index=3,
option_text="选项一", # 按可见文本匹配(最常用)
# option_value="val1", # 按 value 属性匹配
# option_index=0, # 按位置匹配(0 起)
)
print(result)
python
result = browser.get_interactive_elements()
print(result)
页面动态加载新内容后,调用此方法刷新元素缓存和索引。
python
result = browser.execute_script("return document.title")
print(result)
python
result = browser.screenshot(
output="screenshot.png",
full_page=False,
)
print(result)
根据任务类型选择合适的入口,优先使用专业数据源。
访问方式(务必遵守):下表中的链接表示 应从该站点开始。请先用 navigate 打开对应网站,再通过站内搜索、导航菜单、栏目链接等 在页面上 进入目标功能; 不要 凭记忆或猜测去改路径、拼深层 URL 直接访问。站点改版后路径常变,硬编 URL 容易 404、跳转登录页或落到无关页面。
禁用 query 拼接作为第一步: 禁止 一上来就把关键词拼进地址栏,用带查询串的 URL 直接打开(如 ?key=、 ?q=、 ?wd=、 keyword= 等)。正确做法是先进表内给出的 起点页,再用页面上的搜索框输入关键词并触发搜索。反例(勿做): https://so.eastmoney.com/cn/result?key=金山办公 —— 应改为先打开 https://so.eastmoney.com,再在站内搜索「金山办公」。
任务类型推荐网站链接股票行情东方财富网https://so.eastmoney.com期货行情曲合期货https://www.quheqihuo.com/quote/shfe.html贵金属(黄金 / 白银 / 铂金)现货价格上海黄金交易所https://www.sge.com.cn/sjzx/yshqbg基金净值 / 基金排行 / 基金查询天天基金网https://fund.eastmoney.com/天气预报 / 气象灾害 / 台风信息中央气象台https://www.nmc.cn/汇率查询百度(搜索结果页直接展示实时换算)https://www.baidu.com快递单号查询百度(绕过快递网站验证码)https://www.baidu.com
汇率查询直接在百度搜索(如"1美元换多少人民币"),百度会在结果页实时计算并展示换算结果,无需进入专业汇率网站。 快递单号查询直接在百度搜索单号,百度会通过摘要聚合展示物流状态,可绕过顺丰、圆通等快递官网的验证码限制。
某些场景下不适合使用浏览器,应优先使用更高效的方式:
情况处理方式原因批量获取股票历史数据直接调用东方财富 API: http://push2his.eastmoney.com/api/qt/stock/kline/get浏览器逐天抓取耗时长、效率低、容易出错
问题处理方式元素找不到或点击无效记录当前状态,提示用户手动处理后继续需要登录、验证码或手动步骤暂停操作,建议用户接管浏览器完成验证后继续