Skip to content

批量采集

🗂️ 并发采集多个目标。

Client 提供 BatchCapture* 系列方法,并发处理目标列表,返回 BatchResult

📁 源码:pkg/sdk/client.go

类型

符号源码说明
BatchResultL1656批量结果(含 Result)
BatchBytesResultL1664含截图字节
BatchEvidenceBundleResultL1673含完整证据包
ScreenshotRequestL1683单条请求
batchEvidenceBundleDirL1702证据包目录命名

流程

BatchResult 字段

字段说明
Target原始目标
Result*models.Result
Error错误(若有)
Index在批次中的序号

输入展开

混合输入一条命令搞定

配合 ExpandTargets 支持混合输入——单个 URL、CIDR 网段、目标文件可混着传,统一展开为候选列表:

go
targets := sdk.ExpandTargets([]string{"example.com", "10.0.0.0/29", "list.txt"}, nil)
results, _ := client.BatchCapture(targets, sdk.WithFullPage())
for _, r := range results {
    if r.Error != nil {
        log.Printf("%s 失败: %v", r.Target, r.Error)
    }
}

r.Index 保持原始顺序,方便回溯是哪个输入扫挂了。

变体

方法返回
BatchCapture[]BatchResult(含 Result)
BatchCaptureBytes[]BatchBytesResult(含 PNG)
BatchCaptureEvidenceBundle[]BatchEvidenceBundleResult(含全证据)

批量回调时序

上图为内部并发执行视角,下面从调用方看整批任务的下发与结果回传:

BatchResult.Index 保持原始输入顺序,即使内部并发完成顺序不同,回传后仍可按序号对回原始输入。

下一步

基于 MIT 许可发布