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.go→Client 与所有方法
options.go→ClientOptions/ScreenshotOptions
builders.go→With* 链式函数
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 许可发布