Skip to content

pkg/runner ​

🏃 `pkg/runner/` — 浏览器执行核心。

pkg/runner 是 snir 的心脏:驱动 Chrome、采集证据、管理连接池、处理代理/Cookie/黑名单/设备模拟。本页是该目录的总入口,子模块各有详解。

📁 源码目录:pkg/runner/

子模块地图 ​

子模块速查 ​

子模块源码职责详解
核心runner.goRunner 单次执行→
Driver 接口driver.goDriver 抽象→
Chromedpdriver_chromedp.goCDP 实现→
Optionsoptions.go配置容器→
Writerwriter.go多格式输出→
Poolpool.go浏览器池→
PoolDriverpool_driver.go池化执行→
共享池pool_singleton.go进程单例→
事件pool_events.go事件总线→
黑名单blacklist.goSSRF 防护→
代理proxy.go代理提供者→
CookieJarcookie_jar.goCookie 容器→
Netscapecookie_netscape.gocookies.txt→
Cookie 工具cookie_util.go解析转换→
设备预设device_presets.go移动设备→
发现discovery.go自动发现 Chrome→

调用关系 ​

设计要点 ​

  • 依赖反转:Runner 依赖 Driver 接口,chromedp 是其实现,可替换
  • 池化复用:DriverPool 避免反复启动 Chrome
  • 安全默认:Options 默认开黑名单、合理超时
  • 多 Writer 分发:一次采集多种输出

下一步 ​

基于 MIT 许可发布