Temu 自动价保 Tampermonkey 脚本分享/ 一键价保
Temu 自动价保脚本的深入技术分析与修复建议,重点关注 SPA 渲染机制、选择器失效及点击模拟问题,并提出 MutationObserver 等解决方案。
1. 关键信息
- (之前已归纳)脚本功能: 分享Temu自动价保Tampermonkey脚本,旨在自动化订单的Price Adjustment,帮助用户拿回差价(如税费)。
- (之前已归纳)作者经验 (DP): OP (colo7r) 称其个人单账号每周三单,持续使用脚本进行价保,自11月底以来未被“杀号”,甚至有几次因快递原因退款也未受影响,账号“鲁棒”。
- (之前已归纳)其他用户DP: dogga也表示单笔价保超过$50未被“杀号”。
- (之前已归纳)多账号操作: 有用户 (gin_m) 提到“一个手机5个号拉满”的玩法,每天下3-4单,但其手机最终“死透了”,暗示多账号操作风险高。
- (之前已归纳)脚本问题: HarryG和两只饺子反馈脚本存在bug,如无法点击提交、卡住、页面返回顶部等。OP承认保存了错误版本,表示会修复。
- (之前已归纳)脚本安装建议: 用户建议将脚本文件名称结以
.user.js结尾,以便于一键安装。 - (新增)脚本核心问题分析: 用户 zhzja8 对脚本进行了深入分析,指出了脚本“无法触发”或“点击无效”的几个核心问题:
- SPA 路由与执行时机: Temu 是单页应用 (SPA),页面内容变化不刷新。脚本依赖
document-idle和setInterval,可能在初始加载时未在正确上下文挂载,或因 CSP 限制导致轮询未启动。 - 选择器失效: 脚本通过文本匹配(如 'Price match/adjustment')来识别订单入口,但 Temu 按钮文本常含不可见字符,且 DOM 结构复杂,简单的
innerText匹配在 React 渲染下不稳定。 clickByCenterTop局限性: 脚本通过查找中心点模拟点击,但 Temu 按钮上层常覆盖透明的“埋点层”或“响应层”,elementFromPoint可能获取到此透明层,导致点击无效。
- SPA 路由与执行时机: Temu 是单页应用 (SPA),页面内容变化不刷新。脚本依赖
2. 羊毛/优惠信息
- (之前已归纳)通过自动化价保,用户可以更便捷地“撸”Temu的差价,相当于“购 bai 买 piao”或拿回税费。
3. 最新动态
- (之前已归纳)脚本作者计划修复现有bug,建议关注GitHub仓库更新。
- (之前已归纳)Temu前端可能会更新,导致脚本失效。
- (新增)修复方案建议:
- 增强入口检测: 结合 SVG 图标或父级容器属性,而非仅匹配文本。
- 解决 SPA 跳转不触发: 使用
MutationObserver监听 DOM 变化,或在脚本开头声明对bgt_orders.html的特定处理。监听 URL 变化,强制重新扫描。 - 跳过“中心点检测”直接触发 React Fiber: 直接从 DOM 节点获取 React Internal Handler,优先尝试调用 React 的
onClick。
4. 争议或不同意见
- (之前已归纳)价保是否影响账号: OP (colo7r) 认为价保不影响活动参与和账号安全,但Wechat和gin_m认为大额价保或多账号操作会触发风控,导致“杀号”。
- (之前已归纳)风控机制: 用户猜测Temu可能使用AI算法进行风控,并鼓励分享“dp”来探索“cutoff”。
5. 行动建议
- (之前已归纳)谨慎使用: 脚本虽能自动化价保,但存在被Temu风控“杀号”的风险,尤其是在涉及大额退款或多账号“拉满”时。
- (之前已归纳)关注更新: 脚本存在bug,建议等待作者修复后的新版本。
- (之前已归纳)分享DP: 鼓励用户分享自己的价保经验和账号状态“dp”,以帮助社区了解Temu的风控边界。
- (之前已归归纳)多账号风险: 尝试“一个手机5个号拉满”等激进玩法可能导致手机或账号“死透了”。
- (之前已归纳)免责声明: 脚本仅供学习交流,商业用途需谨慎。
- (之前已归纳)脚本作者可考虑的改进: 建议脚本作者在发布时将文件命名为
.user.js,以方便用户一键安装。 - (新增)技术调试建议:
- 打开订单页,按 F12,在 Console 输入
document.querySelectorAll('*').filter(el => el.innerText.includes('Price match'))。 - 如果返回数组为空,说明
innerText方案失效,需改用模糊类名选择器(如[class*="order"])。 - zhzja8 表示可协助编写基于
MutationObserver的“增强版”节点监听函数。
- 打开订单页,按 F12,在 Console 输入