Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

微读 · weidu

mp.weixin.qq.com 公众号文章的稳定姿势。绕开层层叠叠的反爬。

Agent Skills Claude Code Windows License: MIT

让 Claude 第一次贴你公众号链接就能读出来,不再卡在"环境异常"或者一篇 UTF-8 被当 GBK 解的乱码。

安装 · 名字寓意 · 它解决什么问题 · 方法论 · 触发方式 · 实测案例


名字寓意

微读(wēi dú) —— 两字直说:

  • = 微信
  • = 读得到

不靠典故、不绕弯,一眼就懂"让你能读到微信公众号文章"。和姊妹 skill 三省(古典厚度路线)刚好一白话一典故。

它解决什么问题

你贴 https://mp.weixin.qq.com/s/... 链接给 Claude 让它读时:

  • Jina (r.jina.ai/...) → "当前环境异常 + CAPTCHA verification" 页
  • WebFetch → 走 Anthropic 后端被微信反爬识别
  • PowerShell Invoke-WebRequest → 200,但 UTF-8 字节被当 GBK 解,全篇乱码
  • urllib.request / Python requests → 无浏览器 UA,反爬命中

每条路都"看起来工作"——给你 200、给你点东西——但内容是错的(验证码页、乱码、空壳)。普通做法是每次 Claude 试一遍才知道,浪费几个来回还可能 give up。这个 skill 把验证过的路径固化下来。

方法论

步骤 用什么 为什么
1. 抓原始字节 PowerShell HttpWebRequest + 浏览器 UA + WriteAllBytes 走原始字节路径,避开 Invoke-WebRequest 的 UTF-8→GBK 编码污染
2. 判断容器 看 HTML 里 js_contentcontent_noencode 谁在 旧版/新版排版用不同容器,必须分流
3. 双容器提取 Python 优先匹配 <div id="js_content">,回退 content_noencode: JS 变量 新版"沉浸式文章"js_content 不存在,正文塞在 inline JS 里
4. JS string 解码 手写 \xXX / \uXXXX / \n 转义解码 content_noencode 是 JS string 转义不是 JSON 转义

完整代码见 SKILL.md

安装

放到 Claude Code 全局 skill 目录:

cd ~/.claude/skills
git clone https://github.com/DQT-bit/claude-skill-weidu.git weidu

Claude Code 新会话自动发现。验证:

对 Claude 贴:https://mp.weixin.qq.com/s/<任意公众号文章id>
→ 自动激活,给你正文 + 元数据

触发方式

  • 任何 https://mp.weixin.qq.com/s/... 链接(裸贴就触发)
  • 「读一下这篇微信文章」/「看下这个公众号」/「读这个链接」
  • 「解读 / 摘要 / 翻译 / 提取观点」+ 公众号链接
  • 微读看一下」/「用微读读」(直呼其名)

不要触发

场景 用什么
mp.weixin.qq.com 域名 通用网页用 WebFetch / Jina
需要登录态的微信内容(付费/订阅页) 暂不支持
公众号视频号 / 图文卡片 容器结构不同,本 skill 暂不覆盖

平台说明

当前实现基于 Windows PowerShell HttpWebRequest。核心方法论(原始字节 + 双容器兜底)跨平台通用,但完整脚本目前只有 Windows 版。Linux/macOS 版本欢迎 PR——把 PowerShell 那一步换成 curl --raw -A 'Mozilla/5.0...' -H 'Accept-Language: zh-CN,zh;q=0.9' 就行。

实测案例

examples/ 目录:

  • appso-fable5-pingti.md — APPSO《Claude Fable 5 平替指南突然爆火》,旧版 js_content 容器,含"PowerShell Invoke-WebRequest GBK 乱码"陷阱完整回放
  • zhoutian-claude-songkou.md — 周天财经《Claude终于松口》,新版 content_noencode 容器,含"JS string 转义不是 JSON 转义"陷阱

两份产物对账:双容器策略在两种典型公众号上都跑通。

历史与名字变迁

名字 阶段
wechat-read v0.1 / v0.2 初版(功能直白命名)
weidu / 微读 v0.4 及以后(用户反馈"取个有个性的名字"后定名)

旧 GitHub URL claude-skill-wechat-read GitHub 会自动 301 redirect 到这里,已有的克隆 / 书签不破。

方法论致谢

  • 鲁班 Skill by @卡尔 —— 验料、五步法、"实测表现权重最高"等核心打磨原则

姊妹 skill

  • 三省 · sansheng —— 多 sub-agent 并行调研 + Judge 综合,OpenRouter Fusion API 思路本地落地

License

MIT

About

Read mp.weixin.qq.com Official Account articles from Claude Code without getting blocked. PowerShell HttpWebRequest raw bytes + dual-container (js_content / content_noencode) fallback. 绕反爬读公众号文章的稳定姿势。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors