
QiuSWandClaude Opus 5
e8db874c04
feat: 单个商品以图搜同款 (#12)
由 Codex (gpt-5.6-sol) 实施,Claude 审核。R3a,先验证签名算法是否仍有效。
签名与参考实现字节级一致(审核时用固定随机值和时间戳对拍):
pcSign 44 字节 一致
params 1151 字节 一致
requestText 1390 字节 一致
MTOP sign 32 字节 一致
token 提取 一致
Go 特有的陷阱已避开:签名是对 JSON 字符串做哈希,键顺序会改变结果。
Python 的 dict 按插入顺序序列化,而 Go 的 encoding/json 对 map 按键名
字母序排序,用 map 会产出完全不同的 JSON 导致签名必错,且淘宝只返回
含糊的业务错误码,极难定位。实现用 struct 按声明顺序输出,并用
json.Encoder + SetEscapeHTML(false) 对齐 Python 的 ensure_ascii=False。
四个价格字段用空指针输出真正的 null。有专门测试断言键顺序与字节,
防止后人改回 map。
internal/taobao/cdp.go 新增 CookieValue,仅用于读取 _m_h5_tk 计算签名。
AGENTS.md 明确允许该用途;全项目仅 imagesearch.go 调用一次,用完即弃,
不落库、不写日志、不返回前端。
以图搜前先做登录深度检查,未通过即停止,不发起 MTOP 请求,
避免抬高风控概率。
前端:表格操作列新增「搜同款」,结果以弹窗展示缩略图、标题、价格、
店铺、销量,点标题用系统浏览器打开淘宝商品页。
本工单不含批量、队列、并发与落库,那些属于 R3b。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LbdtsD3ohhSMy3KPoCgARq
2026-09-03 09:39:58 +08:00
..
2026-09-02 17:20:44 +08:00
2026-09-02 21:02:58 +08:00
2026-09-02 15:59:54 +08:00
2026-09-02 21:13:12 +08:00
2026-09-03 09:39:58 +08:00