{"skill":{"slug":"wechat-article-reader","displayName":"微信公众号文章导出","summary":"将微信公众号文章导出为 Markdown 格式。当用户提供微信公众号链接 (mp.weixin.qq.com) 或要求下载/导出/保存微信文章时触发。默认保存到工作空间的 source 目录。","description":"---\nname: WeChat-article-reader\ndescription: \"将微信公众号文章导出为 Markdown 格式。当用户提供微信公众号链接 (mp.weixin.qq.com) 或要求下载/导出/保存微信文章时触发。默认保存到工作空间的 source 目录。\"\n---\n\n# 微信公众号文章导出技能 (WeChat-Article-Reader)\n\n## 触发条件\n\n当以下情况时触发此技能：\n\n- 用户提供微信公众号文章链接 (mp.weixin.qq.com)\n- 用户要求\"下载\"、\"导出\"或\"保存\"微信文章\n- 用户要求将微信文章转换为 Markdown\n- 用户提到\"公众号文章\"、\"微信文章\"、\"下载微信\"、\"导出公众号\"\n\n**触发示例：**\n- \"下载这篇文章 https://mp.weixin.qq.com/s/xxx\"\n- \"把这篇公众号文章导出为 markdown\"\n- \"保存微信文章到本地\"\n- \"帮我保存这篇微信文章\"\n\n## 工作原理\n\n此技能使用 Python 脚本执行以下操作：\n1. 获取微信文章 HTML 页面\n2. 从 Open Graph 元标签提取元数据（标题、作者、发布时间）\n3. 从 `#js_content` div 提取正文内容\n4. 使用 markdownify 将 HTML 转换为 Markdown\n5. 保存为带 YAML Front Matter 的 Markdown 文件\n\n## 脚本目录\n\n**基础目录**：`~/.npm-global/lib/node_modules/openclaw/skills/WeChat-article-reader`\n\n**脚本位置**：`scripts/export.py`\n\n## 安装设置\n\n### 首次安装\n\n1. **检查 Python 依赖**：\n```bash\npython3 -c \"import requests, bs4, markdownify\" 2>/dev/null || echo \"需要安装依赖\"\n```\n\n2. **如需安装依赖**：\n```bash\npip3 install requests beautifulsoup4 lxml markdownify\n```\n\n### 无需配置\n\n此技能开箱即用，无需 API Key 或额外配置。使用带浏览器头部的 HTTP 请求来获取微信文章。\n\n## 执行步骤\n\n当此技能被触发时，按以下步骤执行：\n\n### 步骤 1：提取 URL\n\n从用户请求中识别微信文章 URL。有效 URL 以以下开头：\n- `https://mp.weixin.qq.com/s/`\n- `https://mp.weixin.qq.com/...`\n\n### 步骤 2：确定输出目录\n\n默认输出目录：`~/.openclaw/workspace-qiming/source`\n\n用户可以指定自定义输出目录。\n\n### 步骤 3：运行导出脚本\n\n```bash\n# 如需要则创建输出目录\nmkdir -p \"$OUTPUT_DIR\"\n\n# 运行导出脚本\npython3 ~/.npm-global/lib/node_modules/openclaw/skills/WeChat-article-reader/scripts/export.py \"$URL\" \"$OUTPUT_DIR\"\n```\n\n### 步骤 4：报告结果\n\n告知用户：\n- 成功或失败状态\n- 输出文件路径\n- 文章标题和元数据\n- 任何错误或警告\n\n## 命令示例\n\n```bash\n# 基本导出\npython3 ~/.npm-global/lib/node_modules/openclaw/skills/WeChat-article-reader/scripts/export.py \"https://mp.weixin.qq.com/s/xxx\" ~/.openclaw/workspace-qiming/source\n\n# 指定自定义输出目录\npython3 ~/.npm-global/lib/node_modules/openclaw/skills/WeChat-article-reader/scripts/export.py \"$URL\" \"/path/to/output\"\n```\n\n## 输出格式\n\n导出的 Markdown 文件包含：\n\n```yaml\n---\ntitle: 文章标题\nauthor: 作者名称\npublish_time: 发布时间\nsource_url: 原文链接\nexported_at: 导出时间戳\ndescription: 文章描述\n---\n\n# 文章标题\n\n> 原文链接: URL\n\n**作者**: XXX\n**发布时间**: XXX\n\n-----\n\n文章正文内容...\n```\n\n## 文件命名\n\n生成的文件遵循格式：`YYYYMMDD_HHMMSS_文章标题.md`\n\n标题中的特殊字符会被清理以确保文件系统兼容性。\n\n## 常见问题与限制\n\n### 常见问题\n\n| 问题 | 原因 | 解决方案 |\n|------|------|----------|\n| \"无法找到文章正文内容\" | 文章需要登录或已被删除 | 尝试在浏览器中打开，或使用浏览器工具 |\n| 连接超时 | 网络问题或限流 | 等待后重试，检查网络连接 |\n| 编码问题 | 特殊字符 | 脚本自动处理 UTF-8 |\n\n### 已知限制\n\n- **需要登录的文章**：部分文章需要微信登录才能查看\n- **反爬虫**：微信有反机器人措施，可能阻止频繁请求\n- **图片**：不下载文章图片，仅保存 Markdown 文本\n- **复杂格式**：可能无法完全保留所有格式\n\n## 依赖项\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| requests | >=2.31.0 | HTTP 请求 |\n| beautifulsoup4 | >=4.12.0 | HTML 解析 |\n| lxml | >=4.9.0 | XML/HTML 解析器 |\n| markdownify | >=0.11.6 | HTML 转 Markdown |\n\n## 错误处理\n\n脚本会：\n- 打印清晰的中文错误信息\n- 使用正确的状态码退出\n- 优雅处理缺失的依赖\n- 处理前验证 URL 格式\n\n## 来源\n\n基于 wechat-article-export 项目：\n- GitHub: https://github.com/wechat-article/wechat-article-exporter\n- 本 Skill 由 启明 创建\n\n## 开源协议\n\nMIT License\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":1946,"installsAllTime":18,"installsCurrent":18,"stars":4,"versions":1},"createdAt":1772769723356,"updatedAt":1778491745273},"latestVersion":{"version":"1.0.0","createdAt":1772769723356,"changelog":"初始版本，支持导出公众号文章为 Markdown，自动保存到工作空间 source 目录","license":null},"metadata":null,"owner":{"handle":"8421bit","userId":"s17dbkw01wkbnvytaa0n8m25rs83hz0n","displayName":"8421bit","image":"https://avatars.githubusercontent.com/u/61646827?v=4"},"moderation":null}