五分钟教程
⏱️ 从零到熟练,循序渐进掌握 snir。
假设已 安装 完成,snir version 可用。
本教程按 5 个分钟递进,每分钟解锁一层能力:
也可以用时间线看待这五分钟的渐进解锁:
第 1 分钟:第一张截图
bash
snir scan example.com截图存于 ./screenshots/。
第 2 分钟:完整证据
bash
snir scan example.com \
--full-page \
--save-html --save-headers --save-cookies \
--save-console --save-network \
--write-jsonl --db一次拿到截图 + HTML + 头 + Cookie + 控制台 + 网络,写入 JSONL 与 SQLite。
第 3 分钟:批量与展开
bash
# 批量 URL
snir scan file -f urls.txt --threads 10
# 裸 host/IP 按端口展开
snir scan file -f hosts.txt --ports 80,443,8080
# 网段
snir scan cidr 192.168.1.0/24第 4 分钟:模拟与代理
bash
# 设备模拟
snir scan example.com --device iphone-15
snir scan --list-devices
# 代理
snir scan example.com --proxy http://127.0.0.1:8080
# 代理轮换
snir scan file -f urls.txt \
--proxy-list http://p1:8080 --proxy-list http://p2:8080 \
--proxy-strategy round-robin第 5 分钟:API 与 SDK
HTTP API
bash
snir api --host 127.0.0.1 --port 8080 --api-key secretbash
curl -X POST http://127.0.0.1:8080/screenshot \
-H "X-API-Key: secret" -H "Content-Type: application/json" \
-d '{"url":"example.com","save_html":true}'Go SDK
go
package main
import (
"fmt"
"github.com/cyberspacesec/snir-skills/pkg/sdk"
)
func main() {
result, err := sdk.SharedCapture("https://example.com",
sdk.WithFullPage(),
sdk.WithHTML(),
sdk.WithHeaders(),
)
if err != nil { panic(err) }
fmt.Println(result.Title, result.ResponseCode)
}SDK 的优势
SharedCapture 自动复用共享浏览器池,无需手动管理 Chrome 生命周期。With* 选项式 API 类型安全,IDE 有补全。见 SDK 总览。
恭喜 🎉
你已掌握 snir 核心用法 🎉
从单页截图 → 全量证据 → 批量展开 → 设备/代理 → API/SDK,五分钟解锁了 snir 的主干能力。
继续深入: