Releases: 2672243194/dsh-fetch-data
Releases · 2672243194/dsh-fetch-data
Release list
v0.1.3
v0.1.3(自动滚动 + JSONP 支持)
新增:
- 自动滚动捕获懒加载接口(autoScroll 默认开):分步滚动触发 feed/无限列表延迟接口,高度不再增长提前退出——14 站实测接口捕获更全(微博 12→15、网易 5→20、淘宝 12→20)
- JSONP 支持:application/javascript 响应自动剥离 callback({...}) 包裹(含 window.__x(...)、尾分号)
- 解析逻辑抽为纯函数 parseApiBody(JSON → JSONP → null)
测试:18 零依赖断言(+parseApiBody 7 项)+ 22 真实拦截断言(+JSONP 提取/滚动懒加载捕获)全绿;14 站实测 12 OK / 2 静态站预期报错 / 0 崩溃
已知边界:滚动后个别站捕获到超大配置接口(微博 745KB/淘宝 824KB)会被 auto-pick 选中——清单已排序,模型 api= 手动指定即可
v0.1.2
v0.1.2(省 token 原则复审)
省 token 优化:
- description 精简 ~57%(约 700 → 300 字符)——每次调用都发送的固定开销最大单项
- 接口清单按「含数组 + 体量大」排序,模型先看到数据接口
- 静态过滤透明化:
页面 20 个 JSON 接口(7 个静态资源已过滤) - size 格式化 139070B → 136KB
- maxApis 上限真正生效(QQ 36 接口不再无限收集)
修复:
- truncated 误报(恰好等于 maxItems 未截断时误标)
- containsArray 深度 3 → 5(深层数组不漏标)
测试:15 零依赖断言 + 17 真实拦截断言全绿;B 站真实链路复验通过
v0.1.1
v0.1.1(14 站真实世界测试驱动的修复)
修复:
- 页面加载失败不再崩溃(goto 超时/不可达返回明确错误,实测 2 站崩溃全部消除)
- networkidle → domcontentloaded + settle 等待:持续轮询站(掘金/淘宝/QQ 新闻/阮一峰)不再 30s 超时,14 站全量测试 4 分钟 → 51 秒
- 静态资源 JSON(B 站 /bfs/svg-next 图标配置)不再污染 auto-pick
- 字段提取全空自动重试一次(偶发风控如 B 站 -412 可自愈),仍失败给出诊断提示
- 每次调用独立浏览器 context(消除跨调用状态污染)
测试:13 零依赖断言 + 14 真实拦截断言全绿;14 站实测 12 OK / 2 静态站预期报错 / 0 崩溃
验证脚本:multi-site.mjs(已提交,可复跑)
v0.1.0
v0.1.0(首个版本)
fetch_data(url, api?, fields?, maxItems?) — 结构化数据提取插件(DSH 生态首创「拦截页面数据 API」定位)
- Playwright 拦截页面所有 JSON 响应(XHR/fetch),自动选中「含数组且最大」的数据接口
- 结构模式(不带 fields):返回选中接口 2 层结构 + 全部接口清单,模型可
api=手动指定 - 字段模式(带 fields):点号+
[]通配字段路径精确提取,数组按 maxItems 截断 - 紧凑 render、静态 schema(KV 缓存友好)、
ctx.effect浏览器清理、协作超时
测试:11 零依赖断言 + 11 真实拦截断言;B 站排行榜真实提取验证(ranking/v2,137KB list[100])