Skip to content

SDK 总览

🧩 `pkg/sdk` — 把 snir 能力暴露为 Go API。

Go SDK 让你把网页截图/情报采集嵌入自己的 Go 程序,链式配置、类型安全、自带连接池与黑名单。

📁 源码目录:pkg/sdk/

两种风格

选哪个?看场景

风格入口适合
链式 Capture可变参数 With*灵活组合、可选参数多、写起来省
结构体 Screenshot*ScreenshotOptions显式完整、配置来自外部反序列化/配置文件

两者底层走同一套流水线,结果一致。不确定就先用 Capture

核心入口

入口源码说明
Clientclient.go#L54长生命周期客户端
NewClient(opts)client.go#L78构造
NewRemoteClient(wsURL, max)client.go#L113远程 Chrome
Shared* 函数shared.go无需管理 Client

文件结构

文件源码内容
client.goClient 与所有方法
options.goClientOptions/ScreenshotOptions
builders.goWith* 链式函数
result.go结果包装
shared.go共享池便捷函数
targets.go目标展开
autoconnect.go自动连接

最小示例

go
client, _ := sdk.NewClient(sdk.DefaultClientOptions())
defer client.Close()

result, _ := client.Capture("https://example.com",
    sdk.WithFullPage(),
    sdk.WithHTML(),
    sdk.WithConsoleLogs(),
)

更多见 五分钟上手SDK 安装

内部视角

实现细节见 pkg/sdk(内部)

调用穿越分层时序

一次 Capture 调用自上而下穿越 SDK→Runner→Provider→CDP 各层,再自下而上返回 Result:

SDK 是最上层封装——绝大多数场景只需调 sdk.Shared*,底层 runner/provider/cdp 自动串联。

下一步

基于 MIT 许可发布