Install
openclaw skills install wechat-articles-crawler用本地微信公众号抓取器批量识别并拉取某个公众号作者的历史文章,输出 Markdown、HTML 和 articles.json,供后续做作者语料库、风格拆解、仿写模板、事实核验和内容归档。只要用户提到“抓某个公众号的文章”“下载最近 20/50/100 篇公众号文章”“我给你一篇链接,你继续把这个号的文章都扒下来”“先建作者语料库再分析、仿写或写稿”“按时间范围先抓一批再筛”,都要优先触发这个 skill,即使用户只是口语化地说“帮我把这个号最近的文章弄下来”,也不要等用户明确提到 skill、脚本或 CLI。
openclaw skills install wechat-articles-crawler把“给我一个公众号文章链接,然后批量抓取这个公众号最近 N 篇文章并落盘”这件事标准化。
这个 skill 自带抓取脚本包,默认使用当前 skill 目录里的这些文件:
./scripts/main.py./scripts/requirements.txt./scripts/config.json./scripts/run_fetcher.sh./scripts/run.command./references/抓取器说明.md./scripts/main.py 是抓取主程序。./scripts/run_fetcher.sh 是 agent 更适合调用的启动脚本,会在 scripts/ 目录下缺少 .venv 时自动创建并安装依赖。需要看工具细节、安装方式、JSON 返回和缓存目录时,再读 ./references/抓取器说明.md。
下面这些情况不要硬用本 skill:
当前抓取工具已经具备这些能力:
CLI + JSONensure-loginlogin-statusfetchclear-loginMarkdown、HTML、articles.json这个 skill 默认调用当前目录内自带的抓取器副本,不要回头依赖桌面上的原项目路径,除非用户明确要求你同步或升级那份原始项目。
先检查以下文件是否存在:
./scripts/main.py./scripts/requirements.txt./scripts/run_fetcher.sh如果缺失:
最小输入通常只需要:
可选输入:
IM、纯终端、还是有桌面界面如果用户没有显式给抓取篇数和输出目录:
./scripts/config.json./scripts/main.py./scripts/config.json工具当前通过 ./scripts/config.json 控制这些参数:
output_parentoutput_folder_namearticle_limitconcurrencydisplay_mode处理原则:
./scripts/config.jsondisplay_mode = "silent"display_mode = "terminal"display_mode = "image"推荐直接调用:
cd "内容生产龙虾/公众号作者文章抓取"
./scripts/run_fetcher.sh <subcommand> ...
默认不要清。
只有用户明确说:
才执行:
cd "内容生产龙虾/公众号作者文章抓取"
./scripts/run_fetcher.sh clear-login --json
按场景选:
silentterminalimageauto优先运行:
cd "内容生产龙虾/公众号作者文章抓取"
./scripts/run_fetcher.sh ensure-login --json --display silent
如果返回 authenticated,直接继续。
如果返回 waiting_scan:
qr_png_path 和 qr_text_pathqr_png_path 对应的图片发给用户qr_text_path--display image,可以改为 --display image 重新启动登录cd "内容生产龙虾/公众号作者文章抓取"
./scripts/run_fetcher.sh login-status --json
直到出现:
status = authenticatedstatus = timeout登录成功后,执行:
cd "内容生产龙虾/公众号作者文章抓取"
./scripts/run_fetcher.sh fetch "公众号文章链接" --json --display silent
抓取成功时会返回:
account_nameaccount_aliasdownloadedfailedoutput_dirindex_fileresults至少汇报这些信息:
articles.json 路径当前工具最擅长的是:
如果用户说“抓取某一段时间内的文章”,按下面处理:
article_limit 调大,抓一批最近文章articles.json 里的时间字段或 Markdown 里的发布时间做二次筛选article_limit 重跑不要假装当前抓取器已经原生支持精准日期筛选。
默认输出结构类似:
<output_parent>/输出文章/<公众号名_时间戳>/
markdown/
html/
articles.json
每篇文章通常会有:
索引文件 articles.json 适合:
必须遵守:
.playwright-profile 上传到云端clear-login如果用户说要把机器或项目交给别人:
cd "内容生产龙虾/公众号作者文章抓取"
./scripts/run_fetcher.sh clear-login --json
并明确告诉用户已清理这两个目录:
.playwright-profilelogin_artifactsensure-login 长时间卡住,检查 login-status --jsonstatus = timeout,提示用户重新发起登录./scripts/.venv/bin/python 不存在,优先通过 ./scripts/run_fetcher.sh 自动补环境./scripts/main.py 不存在,说明当前 skill 自带抓取器不完整fetch 失败,要把错误原样转述给用户,并附上当前命令和关键路径downloaded = 0,不能说“已完成”failed > 0,要明确说失败篇数和可能原因当状态是 waiting_scan 时,用这种结构:
当前状态:等待扫码登录
二维码图片:<qr_png_path>
二维码文本:<qr_text_path>
下一步:请扫码,扫码后我继续轮询登录状态
当抓取完成时,用这种结构:
抓取完成
公众号:<account_name>
抓取结果:成功 <downloaded> 篇,失败 <failed> 篇
输出目录:<output_dir>
索引文件:<index_file>
抓取完成后,常见下一跳是:
公众号作者仿写模板生成
公众号标题与开头拆解
公众号文章写作
公众号信息深挖与多源核验
示例 1
输入:把 Rockhazix 这个公众号最近 50 篇文章全抓下来,我后面要做仿写。
处理:触发本 skill,先确保登录,再批量抓取并返回输出目录。
示例 2
输入:我给你一篇公众号链接,你去把这个作者最近的文章都下载成 Markdown。
处理:触发本 skill,用 fetch 命令执行一条龙抓取。
示例 3
输入:先删掉登录状态,我重新扫码,你抓完后告诉我文章都存到哪了。
处理:先 clear-login,再 ensure-login,登录成功后执行 fetch。