淘宝会在登录仍然有效的情况下停止下发视频资源:不跳登录页、不出验证码, 详情页里就是没有 mp4 地址。原实现识别不了,把它当成「这个同款没视频」, 继续跑满 20 个同款加重风控,最后写 video_status='none', 而断点规则会永久跳过 none,导致账号恢复后这批商品也不再重试。 与参考实现对齐: - 详情页等待 4 秒改为 8 秒,提为 detail_wait_seconds - 每个同款详情页前做一次 my_itaobao 深度守卫,在两次详情页之间插入 正常页面访问;守卫等待提为 guard_wait_seconds - 详情页后补一次 Cookie 级快速守卫,复用 judgeLogin - 淘宝首页导航等待 3 秒改为 6 秒。签名请求在该页面上下文里 fetch, 页面没加载完就发可能带不上 Cookie - 下载失败重试,5xx 与连接错误重试 download_retries 次, 4xx 和 ffprobe 校验失败不重试 - 每次下载尝试各有独立的 180 秒超时。此前超时套在整个重试循环外面, 大视频首次跑到一半失败后剩余预算不足,重试等于不生效 新增风控降级识别:连续 risk_empty_threshold 个同款打开成功但取不到视频时, 判为疑似风控,中断整批任务并保持商品 pending,绝不写入 none。 停止原因通过 stopReason 枚举传给前端,不依赖中文文本分支。 数据订正提供显式按钮,不写进 migrations。刻意不做日期过滤: synced_at 记录的是商品数据何时从货憨憨拉取,与 video_status 何时被写成 none 无关,每次「下载数据」都会把它刷成当天。某商品是否需要重做的长期 答案来自货憨憨每次全量拉取覆盖的 video_diagnosis,不来自本地时间戳。 淘宝与 Chrome 相关逻辑由假实现覆盖,真机验证尚未进行。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LbdtsD3ohhSMy3KPoCgARq
82 lines
3.4 KiB
YAML
82 lines
3.4 KiB
YAML
# cmsp 本机配置模板
|
|
#
|
|
# 用法:把本文件复制成 config.yaml,填入真实账号密码。
|
|
#
|
|
# Windows: copy config.example.yaml config.yaml
|
|
#
|
|
# 也可以不复制:直接启动程序,在「参数设置」页填写并保存,
|
|
# 程序会自动生成 config.yaml。
|
|
#
|
|
# [必须] config.yaml 已在 .gitignore 里,绝不能提交进 Git——
|
|
# 密码一旦进了 git 历史就很难清干净。
|
|
# [必须] 打包发给同事时也不要带上 config.yaml。
|
|
# [必须] 密码要用双引号包起来。纯数字密码不加引号会被 YAML 当成
|
|
# 整数,读取时直接报错,前导 0 也会丢。
|
|
#
|
|
# 各项含义见 Wiki「本地开发与验证」和「参数设置」页上的说明。
|
|
|
|
huohanhan:
|
|
# 货憨憨网站地址,一般不用改,域名变了才改。结尾不要带斜杠。
|
|
base_url: https://www.huohanhan.com
|
|
|
|
# 登录账号。
|
|
account: 你的货憨憨账号
|
|
|
|
# [必须] 登录密码,加双引号。
|
|
password: "你的密码"
|
|
|
|
# 登录验证码的自动识别服务。
|
|
# [注意] 验证码图片会被发送到这个地址,换成别人的服务前先评估一下。
|
|
ocr_url: https://ocr.ilapage.cn/ocr
|
|
|
|
taobao:
|
|
# [必须] 这里没有淘宝账号和密码,将来也不要加。
|
|
# 淘宝登录必须由你在程序打开的专属 Chrome 里手动扫码完成,
|
|
# 登录态保存在下面的 user_data_dir 里,程序不读取也不保存。
|
|
# 程序不会代填密码,也不会绕过验证码或滑块。
|
|
|
|
# chrome.exe 的完整路径。注意是文件不是目录。
|
|
# 在「参数设置」页可以用「选择文件」按钮挑,不用手打。
|
|
chrome_path: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
|
|
|
|
# 专属 Chrome 的用户数据目录,淘宝登录态就存在这里。
|
|
# 默认在 %LOCALAPPDATA%\电商视频自动下载工具\淘宝浏览器\默认账号
|
|
# [注意] 改了这个路径就要重新扫码登录一次,不要随手改。
|
|
# 这个目录不要提交、打包或共享。
|
|
user_data_dir: "C:\\Users\\你的用户名\\AppData\\Local\\电商视频自动下载工具\\淘宝浏览器\\默认账号"
|
|
|
|
# 给专属 Chrome 分配调试端口的范围。端口被占用时会往后找。
|
|
debug_port_start: 19666
|
|
debug_port_end: 19765
|
|
|
|
download:
|
|
# 下载的视频保存到哪个目录。
|
|
video_dir: "D:\\chengma\\cmsp\\运行数据\\视频"
|
|
|
|
# 每个商品最多下载几个视频,允许 1—10。
|
|
max_videos_per_product: 3
|
|
|
|
# 图搜结果里取前几个同款去找视频,允许 1—60。取太多会明显变慢。
|
|
search_top_n: 20
|
|
|
|
# 同时下载几个视频,允许 1—8。
|
|
# [注意] 调大会提高淘宝风控概率,没有实测结论前不要超过 3。
|
|
concurrency: 2
|
|
|
|
# 处理完一个商品后随机等待的秒数区间,用来降低被风控的概率。
|
|
# 改小了跑得快但更容易被拦,不建议低于 2 秒。
|
|
wait_seconds_min: 2
|
|
wait_seconds_max: 4
|
|
|
|
# 淘宝详情页视频为异步加载;调小会漏视频,不建议低于 8 秒。
|
|
detail_wait_seconds: 8
|
|
|
|
# 每个同款详情页前访问「我的淘宝」的深度登录守卫等待秒数。
|
|
guard_wait_seconds: 3
|
|
|
|
# 连续多少个正常打开却没有视频的详情页时,判为疑似风控并停止任务。
|
|
risk_empty_threshold: 8
|
|
|
|
# 网络层下载失败后的重试次数;HTTP 4xx 和 ffprobe 校验失败不会重试。
|
|
download_retries: 3
|