bsk-browser-launcher
用途:任何需要 BrowserSkill(bsk)做网页抓取 / 浏览器自动化的任务,前置条件是本机 Edge 已开、BrowserSkill 扩展已连上 bsk daemon。无人值守的自动化无法依赖人工在运行时 打开 Edge,本 skill 让任务自己把浏览器和扩展拉起来并确认连接就绪,再交还控制权。
这是一个通用基础组件:只负责“让浏览器可用”,不关心抓取了什么、发布到哪。抓取类
skill(如 web-to-wechat-draft、hkex-disclosure-downloader)和每日自动化任务都应先
调用它,再开始抓取。
何时使用
- 新建一个会跑
bsk navigate/snapshot/click/...的自动化任务或 skill 时。 - 任务报错 “no browser is connected to the daemon” / “browsers connected 0” 时。
- 想在自动化里复用 BrowserSkill,但不想每次手动开 Edge、点扩展。
核心脚本
scripts/launch_browser.py —— 连接自检 + 自动启动 + 可选会话创建。
# 仅确保浏览器已连上 daemon(退出 0=就绪,3=未连)
python scripts/launch_browser.py
# 连上后顺便建一个会话并打印 SESSION=<id>,供后续抓取复用
python scripts/launch_browser.py --start-session
行为
bsk status探测是否已有浏览器连上 daemon;- 没连上 → 启动本机 Edge(扩展随浏览器自启并自动连 daemon);
- 轮询等待连上(默认最多 40s,可用
--wait调整); - 连上即退出 0 并打印确认。
退出码
| 码 | 含义 | 调用方处理 |
|----|------|-----------|
| 0 | 浏览器已连 daemon(带 --start-session 时还会输出 SESSION=<id>) | 继续抓取 |
| 3 | 始终未连上 | 降级:用 WebFetch 直抓,或存本地标记“待补抓”,勿阻断任务 |
| 4 | --start-session 下会话创建失败/超时 | 重试一次或降级 |
带会话的自动化最小骨架
python scripts/launch_browser.py --start-session # 输出 SESSION=xxxx
# 解析出 id 后:
bsk navigate --session <id> "https://xueqiu.com/..."
bsk snapshot --session <id> > snap.txt
# ... 抓取处理 ...
bsk session stop <id>
深度参考
- daemon / 扩展 / SPA 超时 / 中文乱码 / 与业务解耦:
references/bsk_notes.md
调用约定(必看)
- 本 skill 不含任何业务凭证(appid/appsecret 等),纯浏览器管控,可安全上传市场。
- 路径通过
USERPROFILE与环境自动解析(bsk 在~/.local/bin/bsk.exe,Edge 在C:/Program Files (x86)/Microsoft/Edge/...);非此用户需确认路径。 - 文件编码全程 UTF-8。
- 浏览器启动后扩展连接是异步的,
launch_browser.py内置轮询,调用方无需自己 sleep。
微信扫一扫