4.6 KiB
4.6 KiB
Spider 短路径 ID 审计与修正规范
目标
对当前 Python 仓库内已有 Spider 做一轮 vod_id 与播放 id 的规范审计,修正仍然暴露完整 URL 的实现,统一满足以下规则:
vod_id使用站内短路径 id- 播放列表中的剧集 id 使用站内短路径 id
detailContent与playerContent在内部把短路径还原为完整请求地址- 对外返回数据不暴露完整 URL
本次工作是规范性修正,不新增站点功能,不调整已有解析能力范围。
范围
本次审计对象包括当前仓库内的这些 Spider:
libvio.py低端影视.py滴答影视.py剧迷.py橘子TV.pyyouknow.py乌云影视.py剧圈圈.py
本次实现包含:
- 审计上述 Spider 的
vod_id与播放 id 返回形式 - 只修改实际违规的 Spider
- 为每个被修改的 Spider 补充或更新测试
本次实现不包含:
- 改动本就已符合规范的 Spider
- 统一不同站点的 id 格式
- 修改站点已有的播放解析策略
- 修改与 id 压缩无关的列表、详情、搜索、播放逻辑
核心规则
规则 1:按各站原始路径压缩
用户要求“按各站原始路径压缩”,因此不采用统一的跨站格式,例如不强制所有站都用 vod/<id>。
每个站点应保留自身 URL 路径语义,例如:
/detail/123.html压缩为detail/123/vod/123.html压缩为vod/123/play/100-1-1.html压缩为play/100-1-1/movie/demo/压缩为movie/demo/d/456/压缩为d/456
允许保留当前 Spider 已稳定使用的非 URL 型短 id,例如:
- 纯数字 id
- 站点 API 原生
vodId - 已有可逆紧凑 payload
前提是这些值本身不暴露完整 URL。
规则 2:详情 id 可逆
vod_id 必须是 Spider 内部可逆的:
- 列表/搜索返回短 id
detailContent内部负责把短 id 还原成完整详情请求地址
规则 3:播放 id 可逆
详情播放列表中的每个剧集项也必须是 Spider 内部可逆的:
- 详情返回短路径或紧凑播放 id
playerContent内部负责把 id 还原成完整播放请求地址或播放参数
规则 4:对外不返回完整 URL
以下位置禁止返回完整站内详情/播放 URL:
- 列表页结果中的
vod_id - 搜索结果中的
vod_id - 详情结果中
vod_play_url里的剧集 id
例外:
- 外站直链媒体地址
- 网盘分享地址
- 本就不是站内详情/播放页的第三方链接
审计策略
采用“全量审计,按需修复”的方式。
第一步:识别是否违规
重点检查:
- 列表和搜索是否直接把完整详情 URL 赋值给
vod_id - 详情页播放列表是否直接把完整播放 URL 塞进
vod_play_url detailContent是否把传入值直接当 URL 请求playerContent是否把传入值直接当完整播放页 URL 使用
若 Spider 已满足以下任一条件,则视为合规:
- 使用站点内部短路径字符串
- 使用纯数字或 API 原生主键
- 使用当前 Spider 已有可逆紧凑 payload
第二步:最小修复
对违规 Spider 只做以下最小改动:
- 添加
encode/decodehelper,或复用现有 helper - 将列表/搜索返回的完整 URL 改为短路径
- 将详情播放项中的完整播放 URL 改为短路径
- 在
detailContent/playerContent中添加还原逻辑
不做额外重构,不调整字段命名,不重写不相关逻辑。
当前预期违规对象
基于当前代码初步审计,明确违规的对象至少包括:
低端影视.py滴答影视.py
这两个 Spider 当前存在以下问题:
- 列表/搜索直接返回完整详情 URL 作为
vod_id detailContent直接把传入的vod_id当完整 URL 请求
对于其他 Spider:
libvio.py、剧迷.py、youknow.py、橘子TV.py、乌云影视.py、剧圈圈.py当前实现看起来已经使用可逆短 id 或站点主键 本次只做确认,不做无意义修改
测试策略
每个被修改的 Spider 至少补以下回归测试:
- 列表页返回短路径
vod_id - 搜索页返回短路径
vod_id(若该 Spider 支持搜索) detailContent接受短路径 id 并正确还原详情 URL- 详情播放列表返回短路径或紧凑播放 id
playerContent接受短路径或紧凑播放 id 并正确还原播放请求地址
测试全部使用 mock HTML / JSON,不依赖外网。
验收标准
- 审计范围内 Spider 不再对外暴露完整站内详情/播放 URL
- 仅对实际违规 Spider 做代码修改
- 每个被修正的 Spider 都有对应测试覆盖
- 现有已合规 Spider 不发生接口格式回退