解决批量采集微信公众号文章的需求,支持按文章标题或公众号名称两种模式搜索,自动下载文章图片并转化为Obsidian兼容的Markdown文件。使用CDP连接Chrome浏览器模拟真实访问,零API token消耗,仅在HTML转Markdown阶段使用LLM。适用于内容研究、素材收集、知识整理等场景。
微信公众号文章采集技能:搜狗搜索批量采集转Markdown
【适用场景】
- 内容研究:批量采集特定公众号的全部文章,进行内容分析和学习 - 素材收集:为写作项目收集参考资料,整理到本地知识库 - 知识归档:将感兴趣的公众号文章永久保存为本地Markdown文件 - 竞品分析:监控同领域公众号的内容动态,定期采集归档
适用人群:自媒体创作者、内容研究员、知识管理者
【操作步骤】
阶段一:解析搜索需求
分析用户输入,确定以下信息:
1. 搜索模式: - 公众号名称搜索(mode=account):用户提供了具体公众号名称,如"采集公众号 人民日报" - 文章标题搜索(mode=title):用户提供主题或标题关键词,如"微信搜索 AI 大模型"
2. 关键词提取:从用户输入中提取搜索关键词
向用户确认搜索参数后,再进入下一阶段。
阶段二:搜索并采集文章URL
运行搜索脚本,从技能目录执行:
```bash cd SKILL_DIR/scripts && python search.py --mode [title|account] --keyword "关键词" --config SKILL_DIR/config.yaml ```
等待脚本执行完成,读取输出目录中的urls.json文件。
注意:首次运行需等待浏览器启动(30-60秒),出现"[WARN] CDP连接失败"时表示正在自动启动浏览器,耐心等待即可。
阶段三:下载文章内容和图片
URL采集完成后,运行采集脚本:
```bash cd SKILL_DIR/scripts && python fetch.py --config SKILL_DIR/config.yaml ```
脚本会自动下载所有文章内容及图片文件。
阶段四:转换为Obsidian Markdown
内容下载完成后,运行转换脚本:
```bash cd SKILL_DIR/scripts && python convert.py --config SKILL_DIR/config.yaml ```
转换脚本会自动完成: - HTML内容转为Markdown格式 - 生成包含标题、作者、日期、来源的YAML frontmatter - 根据配置处理图片嵌入(相对路径或Base64编码) - 自动生成规范的文件名(日期前缀+标题)
【代码模板】
搜索阶段执行脚本
```bash #!/bin/bash
定位技能目录
SKILL_DIR="path/to/wechat-search-skill-"搜索文章URL(按公众号名称)
cd $SKILL_DIR/scripts python search.py --mode account --keyword "人民日报" --config $SKILL_DIR/config.yaml搜索文章URL(按标题关键词)
python search.py --mode title --keyword "AI大模型" --config $SKILL_DIR/config.yaml ```配置文件结构(config.yaml)
```yaml output_dir: "./output" # 输出目录 attachments_dir: "attachments" # 图片目录 embed_images: false # true=Base64编码,false=相对路径 chrome_port: 9222 # CDP端口,默认9222 headless: false # 必须为false,保持窗口可见 ```
错误处理对照表
| 脚本输出 | 含义 | 处理方式 |
|---|---|---|
| [INFO] 已通过CDP连接到Chrome | 连接成功 | 继续等待 |
| [WARN] CDP连接失败 | 正在自动启动 | 等待30-60秒 |
| [CAPTCHA] | 需手动验证 | 在浏览器中完成验证后按Enter继续 |
| 退出码1 + playwright install | 浏览器未安装 | 运行`playwright install chromium` |
| 退出码2 | 无搜索结果 | 更换关键词重试 |
【复盘要点】
1. 浏览器环境要求:必须安装Playwright和Chromium,首次运行会自动提示安装命令 2. 验证码处理:搜狗搜索触发验证码时必须手动处理,禁止使用OCR自动化识别 3. 禁止直接请求mp.weixin.qq.com:所有文章访问必须通过CDP浏览器,禁止使用HTTP直接抓取 4. 禁止修改脚本:执行过程中不得修改scripts目录下的Python脚本 5. 用户确认机制:阶段二搜索完成后必须等待用户确认才能继续下载 6. 批量处理优势:全流程自动化,可一次性处理数百篇文章的大规模采集任务
来源:GitHub https://github.com/ATTEer/wechat-search-skill-