| name | wechat-claw |
| description | 微信公众号文章综合获取工具。支持两项核心功能:1.单篇文章提取:提供公开链接可稳定解析标题与正文纯文本。2.公众号全量获取:提取目标公众号的全部历史文章与正文。必须根据本地机器与云服务器环境严格区分登录授信策略。 |
WeChat Claw - 微信公众号文章综合获取
本 skill 提供对微信公众号文章的综合获取能力,无论是单篇文章的结构化解析,还是整个公众号历史文章的全量提取。
核心功能与适用场景
1. 单篇文章读取 (Single Article Reader)
适用场景:用户提供了 https://mp.weixin.qq.com/s/... 公开文章链接,需要获取文章的标题、时间、作者和正文。
特点:
- 不需要任何登录凭证(直接访问公开链接)
- 自动处理微信的防护策略(使用 curl_cffi 伪装浏览器指纹)
- 解析并返回干净的结构化数据
2. 公众号全量/批量获取 (Account Crawler)
适用场景:用户想获取某个公众号的全部历史文章,或者某段日期之后的文章列表及其全文正文。
特点:
- 需要微信公众平台登录凭证(cookie 和 token)。
- 环境隔离策略(极其重要,Agent 必须严格遵守并必须询问用户具体环境):
- 本地环境(用户在自己的个人电脑上运行):Agent 可以直接执行自动化脚本,提示用户“稍后会自动弹出一个浏览器界面,请扫描其中的二维码授权登录”。程序会自动处理后续并无缝提取凭证。
- 云服务器环境(Linux 无终端图形界面等远程机器):绝对禁止 Agent 直接默认帮用户采用无头自动化登录(会触发极严的风控与封禁账号风险)。Agent 主动提醒用户自己去获取:“因为微信在云厂商节点极易触发风控拦截,请您在本地电脑的浏览器中登录公众平台(mp.weixin.qq.com),按 F12 抓包 Network,将任意请求的 Request Headers 里的完整 Cookie 以及 URL 参数里的 token 复制查出,并直接贴给我。” Agent 拿到这两个值后利用
--credentials 参数拼接投喂给爬虫执行。
- 自动连贯执行:脚本运行拿完全部列表 URL 后,会自动启动第二抓取流程,直接把每篇文章的纯文本同时请求下来,生成终端产出物
_full_.json,不再需要两步操作。
前置依赖
本 skill 需要以下 Python 依赖与环境支持:
pip install -r requirements.txt
playwright install chromium
🛠 功能 1:单篇文章读取
由于微信页面包含极其复杂的动态反机器逻辑,只要用户给出了文章链接进行单篇处理,必须使用以下脚本提取内容,严格禁止使用 web_fetch 或 web_search 等其它内置工具替代。
运行命令
python read_wechat_article.py "https://mp.weixin.qq.com/s/..."
🛠 功能 2:公众号全量/批量获取
Agent 核心准则:如果在对话上下文中不知道用户环境,必须先问!如果知道是在云服务器,必须让用户自己提取后给你!绝不能随意启动。
场景 A:本地环境执行法则 (全自动)
如果双方明确这是在本地本机执行,直接无参调用。
Agent 的引导话术: “我们将自动拉起 Chrome,请准备好手机扫码进行验证。”
python crawler.py --nickname "公众号名称" --since 2026-03-01 --max 50
场景 B:云端服务器环境执行法则 (手工参数注入)
如果双方明确是跑在海外/机房云服务等远端计算节点。
Agent 的首要任务: 绝不要让用户去做拼装 JSON 之类复杂的开发工作!
Agent 的引导话术: “请在您个人的电脑浏览器上打卡微信公众平台,并按下 F12 查看网络报文,直接把请求头里的完整 Cookie 以及 URL 参数里的 token 复制粘贴发给我即可,剩下的拼接工作交给我。”
拿到用户发来的原始 Cookie 和 Token 后,由 Agent 负责在底层自动拼装成合法的 JSON 字符串,并通过传参方式执行:
python crawler.py --nickname "公众号名称" --credentials '{"cookie":"这里塞用户的超级长cookie","token":"这里塞用户的token"}'
附加参数参考表
--max 10 仅获取最新的十篇
--since 2026-03-01 仅获取指定日期以来的文章
--fakeid "MzI..." 手动指定目标 fakeid (可跳过检索)
⚠️ 核心注意事项与 Agent 报错处理指南
- 凭证不具备持久性(几小时内即失效):
提取出的
Cookie 和 Token 存活期通常仅几小时。如果执行时脚本抛出 [!] 可能是 cookie/token 已过期,Agent 必须主动作出判断:
- 针对本地:果断提示由于凭证过期已清理本地缓存,并立刻替用户重跑命令以弹出新的扫描二维码。
- 针对云端:明确告知用户凭证自然失效了,请务必让他重复刚才的 F12 手工提取操作拿一组非常新鲜的数值给你。
- 正文数据的自动合并结果:
千万不要试图再跑什么
fetch_content.py 去弄二次请求,现版 crawler.py 在首阶段提取出列表结构后,会自动执行这一过程,并产出 _full_xxxx.json。此时 Agent 应该帮用户直接审视这份 _full_ 后缀的新结果即可!