保留 MTOP 图搜并按真实返回优化商品详情进入路径 #23

Open
opened 2026-09-29 15:27:10 +08:00 by ila · 3 comments
Owner

来源与授权(2026-09-29)

用户要求保留当前搜索方式,研究从搜索结果链接进入商品页,并明确“按照你的建议来做”。本次先检查成功 MTOP 响应,按真实返回调整链接使用;不追加实施审批。

目标与已确认方案

  1. 仅一次真实只读图搜,沿用专属 Chrome、手动登录和现有登录/访问异常停止门;只输出字段名称和链接结构,不输出原始响应、真实商品数据、Cookie、token、签名或完整链接参数值。
  2. 若返回可用淘宝结果页地址,验证结果页可打开并点击匹配商品;若仅返回完整商品链接,校验域名及商品 ID 后保留原链接用于详情导航。若没有这些字段或无法取得成功响应,不猜测构造字段或来源参数,记录真实限制。
  3. 保留 MTOP 搜索请求/签名、等待/候选参数、原登录与断点规则和现有视频提取/下载。链接无效不得导航到不可信站点或其他商品;普通 ID 拼接只作为明确无原链接时的既有兼容行为。
  4. 少量对照验证详情正常访问与视频可见情况,遇到访问异常立即停止,不重试、不通过收藏或其他写操作改变平台状态。

非目标

不改网页上传搜索,不实现视频网络监听,不自动过验证、登录、收藏、账号/IP轮换;不改货憨憨上传、SQLite结构或状态;不承诺缓解平台限制。

依赖与影响

所属 MVP #5、Epic #2。基于已提交 #21/#22 停止门,人工待验收不阻塞本次独立调整。影响 taobao 图搜解析/候选导航及必要 app 调用;保留 go.mod/go.sum、cmsp.code-workspace、cmsp.exe 的既有用户改动。

风险与回退

外部链接解析与导航按较高风险记录,真实返回结构和平台状态不确定。保持严格淘宝商品域名与 ID 校验、查询参数仅内存使用、不新增敏感日志;回退本任务提交,不回退数据库或用户配置。无法取得真实字段证据时停止依赖该证据的实施。

验收与验证

  • 记录实际响应是否提供商品/结果页链接,区分代码证据与真实联调证据。
  • 有可靠字段时保留链接并贯穿到详情导航,不能再被 ID 重建覆盖;合法域名、ID不匹配、恶意域名、缺失链接和既有候选缓存/停止行为有针对性测试。
  • 原登录失效/访问异常仍立即停批,SQLite已有视频与下载上传状态保持。
  • Go test/race/vet、Windows构建及Harness必要检查;真实对照若受限明确标记未验证。

文档影响

实现调用路径变化时更新 Wiki Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification、Troubleshooting,在线回读 revision 后同步镜像;纯诊断且未改变长期事实时说明无长期文档影响。无新 UI,文字技术设计足够,无归档/部署影响。

状态

待验收

Gitea访问

当前未配置可用Gitea MCP,回退项目WikiClient的Gitea API;凭据仅从用户授权环境文件载入进程,不输出或持久化。

## 来源与授权(2026-09-29) 用户要求保留当前搜索方式,研究从搜索结果链接进入商品页,并明确“按照你的建议来做”。本次先检查成功 MTOP 响应,按真实返回调整链接使用;不追加实施审批。 ## 目标与已确认方案 1. 仅一次真实只读图搜,沿用专属 Chrome、手动登录和现有登录/访问异常停止门;只输出字段名称和链接结构,不输出原始响应、真实商品数据、Cookie、token、签名或完整链接参数值。 2. 若返回可用淘宝结果页地址,验证结果页可打开并点击匹配商品;若仅返回完整商品链接,校验域名及商品 ID 后保留原链接用于详情导航。若没有这些字段或无法取得成功响应,不猜测构造字段或来源参数,记录真实限制。 3. 保留 MTOP 搜索请求/签名、等待/候选参数、原登录与断点规则和现有视频提取/下载。链接无效不得导航到不可信站点或其他商品;普通 ID 拼接只作为明确无原链接时的既有兼容行为。 4. 少量对照验证详情正常访问与视频可见情况,遇到访问异常立即停止,不重试、不通过收藏或其他写操作改变平台状态。 ## 非目标 不改网页上传搜索,不实现视频网络监听,不自动过验证、登录、收藏、账号/IP轮换;不改货憨憨上传、SQLite结构或状态;不承诺缓解平台限制。 ## 依赖与影响 所属 MVP #5、Epic #2。基于已提交 #21/#22 停止门,人工待验收不阻塞本次独立调整。影响 taobao 图搜解析/候选导航及必要 app 调用;保留 go.mod/go.sum、cmsp.code-workspace、cmsp.exe 的既有用户改动。 ## 风险与回退 外部链接解析与导航按较高风险记录,真实返回结构和平台状态不确定。保持严格淘宝商品域名与 ID 校验、查询参数仅内存使用、不新增敏感日志;回退本任务提交,不回退数据库或用户配置。无法取得真实字段证据时停止依赖该证据的实施。 ## 验收与验证 - 记录实际响应是否提供商品/结果页链接,区分代码证据与真实联调证据。 - 有可靠字段时保留链接并贯穿到详情导航,不能再被 ID 重建覆盖;合法域名、ID不匹配、恶意域名、缺失链接和既有候选缓存/停止行为有针对性测试。 - 原登录失效/访问异常仍立即停批,SQLite已有视频与下载上传状态保持。 - Go test/race/vet、Windows构建及Harness必要检查;真实对照若受限明确标记未验证。 ## 文档影响 实现调用路径变化时更新 Wiki Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification、Troubleshooting,在线回读 revision 后同步镜像;纯诊断且未改变长期事实时说明无长期文档影响。无新 UI,文字技术设计足够,无归档/部署影响。 ## 状态 待验收 ## Gitea访问 当前未配置可用Gitea MCP,回退项目WikiClient的Gitea API;凭据仅从用户授权环境文件载入进程,不输出或持久化。
Author
Owner

2026-09-29 实际只读图搜成功,60 个候选;itemsArray 中有 auctionURL,首条为 detail.tmall.com,包含 id/skuId/abbucket/ns/mi_id/xxc 参数名称;未发现可用淘宝结果页地址。未保存原始响应/真实商品/参数值。方案据此采用原始商品链接,校验 item.taobao.com/detail.tmall.com 的 /item.htm 与唯一匹配 id 后保留查询参数,缺失字段时兼容旧 ID 链接;不声称这是淘宝结果页点击。详情导航及下载 Referer 贯穿使用该链接。代码修改后再进行一次只读图搜验证新解析,并对一个商品原链接/旧链接做少量对照;这是修改后验证,不自动重试,任何访问异常即停止。初始临时诊断测试因未使用 import 编译失败,删除该 import 后成功;无淘宝请求发生在编译失败阶段。

2026-09-29 实际只读图搜成功,60 个候选;itemsArray 中有 auctionURL,首条为 detail.tmall.com,包含 id/skuId/abbucket/ns/mi_id/xxc 参数名称;未发现可用淘宝结果页地址。未保存原始响应/真实商品/参数值。方案据此采用原始商品链接,校验 item.taobao.com/detail.tmall.com 的 /item.htm 与唯一匹配 id 后保留查询参数,缺失字段时兼容旧 ID 链接;不声称这是淘宝结果页点击。详情导航及下载 Referer 贯穿使用该链接。代码修改后再进行一次只读图搜验证新解析,并对一个商品原链接/旧链接做少量对照;这是修改后验证,不自动重试,任何访问异常即停止。初始临时诊断测试因未使用 import 编译失败,删除该 import 后成功;无淘宝请求发生在编译失败阶段。
Author
Owner

2026-09-29 修改后真实联调未取得成功解析结果,未继续请求淘宝或打开详情;临时诊断只保留了通用失败标记,未保留错误分类,无法区分 MTOP 返回状态失败与链接校验失败,不能据此断言平台风控原因。原链接/旧链接详情对照及风控效果未验证。基于外部候选链接边界补充:单个非法链接候选跳过且不导航,其他合法候选保留;全部不可用明确报错,避免误记无同款。该边界由模拟数据验证,不作为真实失败根因结论。全量 Go 测试首轮因误删仍被视频主机解析使用的 net/url import 编译失败,恢复后 test/race/vet 全部通过;临时诊断源已删除,无原始响应/凭据落盘。

2026-09-29 修改后真实联调未取得成功解析结果,未继续请求淘宝或打开详情;临时诊断只保留了通用失败标记,未保留错误分类,无法区分 MTOP 返回状态失败与链接校验失败,不能据此断言平台风控原因。原链接/旧链接详情对照及风控效果未验证。基于外部候选链接边界补充:单个非法链接候选跳过且不导航,其他合法候选保留;全部不可用明确报错,避免误记无同款。该边界由模拟数据验证,不作为真实失败根因结论。全量 Go 测试首轮因误删仍被视频主机解析使用的 net/url import 编译失败,恢复后 test/race/vet 全部通过;临时诊断源已删除,无原始响应/凭据落盘。
Author
Owner

最终实现与验证(2026-09-29)

差异

  • 实际确认 itemsArray[].auctionURL 字段存在,原搜索请求、签名和图片处理保持原样;解析保存该链接及查询参数。只允许 http/https、item.taobao.com/detail.tmall.com、/item.htm、唯一且匹配的 id,拒绝其他域名、用户信息、端口、片段、错误编码。协议相对链接补 https;只有字段缺失才兼容原 ID 地址。
  • 非法链接候选跳过且不访问,不改拼旧地址;其他合法候选保留;所有候选不可用时明确报错,不作为正常无结果。
  • 候选把完整 SimilarItem 传入详情导航,选中 URL 用于 CDN 下载 Referer;不为商品详情导航额外设置 Referer,不模拟淘宝结果卡片点击。当前未获得可打开的淘宝结果页地址证据。
  • 原串行访问、同批 ID 缓存、首次深度检查、后续当前页守卫、全局停止门及 SQLite 视频/下载/上传状态保持;没有真实店铺写入,没有下载或覆盖生产数据。

已通过

  • go test ./...、go test -race ./...、go vet ./...。
  • 使用 HEAD 基线 go.mod/go.sum 的临时 modfile(Wails 2.15)运行 go test ./... 通过,不修改用户 Wails 2.16 的工作区变更。
  • 链接参数保留、缺失兼容、淘宝/天猫域名和 ID 校验、非法混合候选及全部非法、原链接导航与缓存、受限后停止;SQLite 集成包含带参数的天猫原链接,检查现有状态和视频保持。
  • 当前 Wails 2.16 前端与 Windows 构建通过;最终后端修改后重新构建 build/bin/cmsp23.exe。
  • Harness 55 项自测、check --strict、Wiki sync 与 sync --check 通过;git diff --check 通过。

实际联调与限制

第一次只读图搜成功,60 个候选,确认 auctionURL 存在,首条为天猫详情且带来源/SKU等参数。仅输出字段名、域名和参数名称,不输出参数值或商品数据,不保存原始响应或凭据。修改后一次联调未取得成功解析结果,临时诊断未保留错误分类,无法区分 MTOP 状态失败和链接校验失败;随即停止,没有重试、详情对照或自动恢复。此结果不能证明风控缓解。真实原链接/旧链接详情对照、视频获取及 Windows 界面运行仍未验证。后续无效候选跳过边界仅由模拟测试验证。

提交与交付

提交 b8453acfc6eff4f24cb9d1242301798ebdd2f2dd 已推送 main;代码与 Wiki 镜像同一提交。可执行文件:D:\chengma\cmsp\build\bin\cmsp23.exe。用户原 go.mod/go.sum、cmsp.code-workspace、cmsp.exe 未纳入提交。

文档

Wiki 已修改并在线回读,镜像同步及检查通过;镜像提交 b8453acfc6eff4f24cb9d1242301798ebdd2f2dd。无新 UI 原型/部署/任务归档。

  • Architecture-and-Code-Map: 662a06a06a45623d4adb68c5bf1fe86ee70103ee
  • Business-Rules-and-Glossary: f4dcb37885891ef200f0d4703d97d623fa8aac47
  • Local-Development-and-Verification: a99cdc64887622e4127aebd0693d37fffaa3f0c4
  • Troubleshooting: c91a79baab19786e491b46e8aceb2308a2ea49d5

状态:待验收。用户尚未验收,不关闭工单。

## 最终实现与验证(2026-09-29) ### 差异 - 实际确认 itemsArray[].auctionURL 字段存在,原搜索请求、签名和图片处理保持原样;解析保存该链接及查询参数。只允许 http/https、item.taobao.com/detail.tmall.com、/item.htm、唯一且匹配的 id,拒绝其他域名、用户信息、端口、片段、错误编码。协议相对链接补 https;只有字段缺失才兼容原 ID 地址。 - 非法链接候选跳过且不访问,不改拼旧地址;其他合法候选保留;所有候选不可用时明确报错,不作为正常无结果。 - 候选把完整 SimilarItem 传入详情导航,选中 URL 用于 CDN 下载 Referer;不为商品详情导航额外设置 Referer,不模拟淘宝结果卡片点击。当前未获得可打开的淘宝结果页地址证据。 - 原串行访问、同批 ID 缓存、首次深度检查、后续当前页守卫、全局停止门及 SQLite 视频/下载/上传状态保持;没有真实店铺写入,没有下载或覆盖生产数据。 ### 已通过 - go test ./...、go test -race ./...、go vet ./...。 - 使用 HEAD 基线 go.mod/go.sum 的临时 modfile(Wails 2.15)运行 go test ./... 通过,不修改用户 Wails 2.16 的工作区变更。 - 链接参数保留、缺失兼容、淘宝/天猫域名和 ID 校验、非法混合候选及全部非法、原链接导航与缓存、受限后停止;SQLite 集成包含带参数的天猫原链接,检查现有状态和视频保持。 - 当前 Wails 2.16 前端与 Windows 构建通过;最终后端修改后重新构建 build/bin/cmsp23.exe。 - Harness 55 项自测、check --strict、Wiki sync 与 sync --check 通过;git diff --check 通过。 ### 实际联调与限制 第一次只读图搜成功,60 个候选,确认 auctionURL 存在,首条为天猫详情且带来源/SKU等参数。仅输出字段名、域名和参数名称,不输出参数值或商品数据,不保存原始响应或凭据。修改后一次联调未取得成功解析结果,临时诊断未保留错误分类,无法区分 MTOP 状态失败和链接校验失败;随即停止,没有重试、详情对照或自动恢复。此结果不能证明风控缓解。真实原链接/旧链接详情对照、视频获取及 Windows 界面运行仍未验证。后续无效候选跳过边界仅由模拟测试验证。 ### 提交与交付 提交 `b8453acfc6eff4f24cb9d1242301798ebdd2f2dd` 已推送 main;代码与 Wiki 镜像同一提交。可执行文件:`D:\chengma\cmsp\build\bin\cmsp23.exe`。用户原 go.mod/go.sum、cmsp.code-workspace、cmsp.exe 未纳入提交。 ### 文档 Wiki 已修改并在线回读,镜像同步及检查通过;镜像提交 `b8453acfc6eff4f24cb9d1242301798ebdd2f2dd`。无新 UI 原型/部署/任务归档。 - Architecture-and-Code-Map: `662a06a06a45623d4adb68c5bf1fe86ee70103ee` - Business-Rules-and-Glossary: `f4dcb37885891ef200f0d4703d97d623fa8aac47` - Local-Development-and-Verification: `a99cdc64887622e4127aebd0693d37fffaa3f0c4` - Troubleshooting: `c91a79baab19786e491b46e8aceb2308a2ea49d5` 状态:待验收。用户尚未验收,不关闭工单。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmsp#23