Skip to content

Releases: Pengyf04/weread-mp-fetcher

v0.2.0 — 导出文件、翻页读旧文章、Chrome 136+ 连接方式重写

Choose a tag to compare

@Pengyf04 Pengyf04 released this 12 Aug 02:05

新增

  • --out [路径]:抓取结果直接导出成文件(UTF-8,无 BOM),规避 shell 重定向在部分环境下的编码坑。省略路径时自动用 out/weread-<时间戳>.md;指到目录(或以 / 结尾)时在目录里用默认文件名;加 --out 时终端保持安静,路径与统计走 stderr
  • --pages N:往前翻页,读到更旧的文章。实测 offset 是该接口唯一有效的翻页参数(count/maxIdx 会被服务端忽略);默认 1 页与旧版行为完全一致,上限 maxPagesPerRun(默认 3)超限直接拒绝;翻页中途失败时已抓到的页不丢
  • 账本请求明细与第二道闸门:额度账本新增 {articles, shelf} 实际请求计数,新增 maxRequestsPerDay(默认 40)预算闸门
  • -2041 自动诊断:全部公众号都返回 -2041 时,自动刷新阅读器页并如实陈述观察到的状态(验证码/掉登录/一切正常),附书架接口信号帮助区分"账号还好"与"接口被限"

修复

  • Chrome 136+ 连接方式:旧文档"直接给日常 Chrome 加 --remote-debugging-port"的做法自 Chrome 136 起被静默忽略。README 重写为双方案——默认:专用 --user-data-dir + 端口 9333(一次扫码持久登录、无授权弹窗);备选:chrome://inspect/#remote-debugging 开关(每次连接需手动允许)
  • 显式指定 chromePort 时,误用默认目录里其他 Chrome 实例残留的 DevToolsActivePort 路径,导致连接必然失败(实测复现)
  • 新用户首跑:新开标签页未等页面就绪就发请求,报 Failed to parse URL
  • 书架接口出错(如会话未续期)被误诊成「你的书架里还没有任何公众号」
  • --add 遇网络故障不再整体报错退出并丢弃已解析的 bookId
  • chromeProfileDir 支持 ~ 展开

兼容性说明

  • JSON 输出顶层新增 meta,公众号级新增 pageMeta/pagesFetched/partialErr;既有字段全部保留,不改名不删除
  • config.json 新增键均为可选,老配置无需修改即可运行

工程

  • 离线测试 18 → 71 项(全部为行为测试,不搜字符串)
  • GitHub Actions CI:Node 18/20/22 × Ubuntu/macOS 六腿必过 + Windows 观察腿;零依赖零网络