mcpField
Y
yichen-wechat-mp-batch-exporter

yichen-wechat-mp-batch-exporter

github.com/mcncarl数据与数据库4.9k48 次安装今天更新
代码仓库

关于 yichen-wechat-mp-batch-exporter

用于批量下载和整理微信公众号文章的 Agent 技能,面向需要导出文章正文、历史列表或增强数据的用户。它通过多种导出流程处理不同需求,并要求登录、代理和微信桌面操作由用户确认。

主要功能

  1. 01批量下载已知文章 URL
  2. 02导出公众号历史文章列表
  3. 03分析去重并区分文章计数口径
  4. 04按需导出阅读及互动数据
  5. 05遵循凭据保护和人工确认规则

适用场景

  1. 01将 URL 清单批量保存为 Markdown
  2. 02查看公众号历史文章并统计数量
  3. 03整理文章正文及阅读互动指标

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mcncarl/yichen-skills --skill yichen-wechat-mp-batch-exporter

安装后在 Claude Code 中输入/yichen-wechat-mp-batch-exporter确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
agents/
openai.yaml
references/
exporter-workflow.md
manual-gates.md
output-schema.md
scripts/
analyze_history.py
doctor.py
download_urls.py
start_wxdown_service.py

详细介绍

微信公众号批量导出器

核心规则

绝不操作用户的微信界面。不要发布、删除、群发、关注、取消关注、发送消息,也不要在微信中点击任何内容。对于需要使用微信桌面端的工作流,准确告知用户需要执行的操作,并等待确认。

绝不要在聊天或保存的报告中输出原始 Cookie、auth-key、token、pass_ticket、key、uin、凭据 JSON 或二维码登录密钥。

下载的文章内容归原作者或权利人所有。除非用户确认自己有权转载或再分发,否则仅在用户合法/私人使用的范围内使用导出内容。

第一步

选择工作流前,先运行本地诊断:

python3 {baseDir}/scripts/doctor.py

只有当任务需要公共导出器 API 或在线下载端点时,才使用 --check-network。

决策树

  • 用户提供了已知文章 URL,且只需要正文/Markdown:使用 scripts/download_urls.py;无需登录或操作微信。
  • 用户想获取某个公众号的历史文章列表或最新 N 篇文章:使用 wechat-article-exporter 的导出器模式;这需要登录/auth-key,且必须是用户自己的微信公众号后台账号。
  • 用户需要阅读量、点赞、转发、评论或评论回复:先使用 wxdown-service 凭据流程,然后从 wechat-article-exporter 导出增强字段。
  • 用户表示“不登录”“代理模式”,或导出器模式失败:仅在用户明确确认后,使用代理/历史记录回退方案;先阅读 references/manual-gates.md。

对于无需批量处理或增强数据的简单单 URL 提取,优先使用现有的 $wechat-article skill。

数量统计规范

在明确统计范围之前,绝不要将公众号文章总数直接报告为“ N 篇文章”。

任何历史记录同步或导入历史记录 JSON 后,都要运行:

python3 {baseDir}/scripts/analyze_history.py --history-json /path/to/history.dedup.json
python3 {baseDir}/scripts/analyze_history.py --chunk-dir /path/to/chunks --output-dir /path/to/output

面向用户的回答中使用以下标签:

  • publish_groups:唯一的 msgid 值;大致对应一组微信发布/消息。
  • expanded_url_items:展开多篇文章消息后得到的所有唯一文章 URL。
  • original_articles:前端样式的原创文章数,使用 copyright_type=1、copyright_stat=1 和 is_deleted=false 统计。

如果统计结果与用户在微信中看到的数量不一致,先解释统计范围的差异,并指出生成的 history.summary.json/history.summary.md。

已知 URL 正文下载

对于粘贴的 URL、.txt、.csv 或 .json URL 列表,使用此路径:

python3 {baseDir}/scripts/download_urls.py --file /path/to/urls.txt --format markdown
python3 {baseDir}/scripts/download_urls.py "https://mp.weixin.qq.com/s/..."

仅报告:成功数量、失败数量、失败的 URL、输出目录和 index.csv。

默认输出:

~/Downloads/wechat-mp-batch/<run-id>/
|-- index.csv
|-- errors.json
`-- articles/
    `-- 001-<safe-title>.md

历史记录与增强导出

运行导出器、处理历史记录或增强数据任务前,先阅读 references/exporter-workflow.md。

使用以下命令启动本地凭据助手:

python3 {baseDir}/scripts/start_wxdown_service.py

使用成熟的上游工具栈:

  • wechat-article/wechat-article-exporter 用于账号搜索、文章历史记录、正文下载和多格式导出。
  • wechat-article/wxdown-service 用于采集用户自有凭据,以获取阅读/评论指标。

本地源码路径因环境而异。优先使用环境变量或显式脚本标志:

export WECHAT_ARTICLE_EXPORTER_DIR=/path/to/wechat-article-exporter
export WXDOWN_SERVICE_DIR=/path/to/wxdown-service
python3 {baseDir}/scripts/doctor.py --exporter-path "$WECHAT_ARTICLE_EXPORTER_DIR" --wxdown-path "$WXDOWN_SERVICE_DIR"
python3 {baseDir}/scripts/start_wxdown_service.py --wxdown-dir "$WXDOWN_SERVICE_DIR"

使用公共导出器时,默认基础 URL 为:

https://down.mptext.top

手动确认关卡

任务涉及登录、凭据、评论、阅读量、代理、证书信任或微信桌面端时,务必阅读 references/manual-gates.md。

以下操作始终需要用户明确确认:

  • 扫描二维码并选择用户的公众号或服务号。
  • 安装或信任 mitmproxy 证书。
  • 启用或更改 macOS 系统代理设置。
  • 要求用户在微信桌面端打开文章/历史记录页面并滚动浏览。
  • 使用粘贴的 auth-key 或凭据文件。

输出

构建归档,或将导出器结果合并到其他系统时,请阅读 references/output-schema.md。

建议的增强归档字段:

account_name, fakeid, title, url, publish_time, author, digest, cover_url,
body_markdown_path, html_path, image_dir,
read_count, like_count, share_count, favorite_count, comment_count,
comments_path, comment_replies_path, fetch_mode, credential_status, exported_at

历史记录分析输出应包含:

history.summary.json, history.summary.md,
history.dedup.json, history.dedup.csv, urls.all.txt,
history.original.json, history.original.csv, urls.original.txt

无法自动完成的事项

  • 不绕过登录、已删除内容、付费墙、私密文章或平台权限检查。
  • 没有用户新提供的凭据时,不保证阅读量或评论量指标。
  • 不操作微信界面,也不代替用户执行必须在微信桌面端完成的操作。
  • 文章关闭或隐藏评论时,不承诺发表评论。
  • 不暗中安装系统证书、更改代理或让代理设置一直处于启用状态。

评论

支持 Markdown