关于 wechat-article-fetcher
wechat-article-fetcher 是用于获取、解析和保存微信公众号文章的工具,适合需要归档或处理文章内容的用户。它支持批量下载,并可输出 Markdown、HTML、元数据和图片。
主要功能
- 01获取单篇或批量文章
- 02提取文章元数据并输出 JSON
- 03保存 HTML 与 Markdown 版本
- 04下载文章图片
- 05按公众号和日期整理输出目录
适用场景
- 01归档多个微信公众号文章
- 02提取文章标题、作者和发布时间
- 03将文章内容转换为 Markdown
- 04下载文章及配图以供离线整理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wwwzhouhui/ skills_collection --skill wechat-article-fetcher安装后在 Claude Code 中输入/wechat-article-fetcher确认已加载。
附带文件references/wechat_html_structure.mdscripts/fetch_wechat_article.py
详细介绍
来自项目 README微信公众号文章获取器
获取、解析并保存微信公众号文章,支持单篇和批量下载、元数据提取、图片下载和 Markdown 转换。
快速开始
获取单篇文章:
python scripts/fetch_wechat_article.py "https://mp.weixin.qq.com/s/xxxxx"
批量获取多篇文章(空格分隔):
python scripts/fetch_wechat_article.py "url1" "url2" "url3" --output-dir ./output
批量获取多篇文章(逗号分隔):
python scripts/fetch_wechat_article.py "url1,url2,url3" --output-dir ./output
仅输出元数据(不保存文件):
python scripts/fetch_wechat_article.py "https://mp.weixin.qq.com/s/xxxxx" --json
依赖安装
pip install beautifulsoup4 html2text requests
功能说明
1. 获取文章并保存到本地
python scripts/fetch_wechat_article.py "<url>" --output-dir ./output
输出目录结构:
output/<公众号名称>/<日期>_<标题>/
├── index.html # 格式化的独立HTML文件
├── article.md # Markdown版本
├── meta.json # 文章元数据
└── images/ # 下载的图片
2. 仅提取元数据
python scripts/fetch_wechat_article.py "<url>" --json
返回 JSON 包含:title(标题)、author(作者)、account_nickname(公众号名称)、description(摘要)、create_time(发布时间)、content_text(正文文本)、content_markdown(Markdown内容)、cover_image(封面图)、source_url(原文链接)。
3. 批量下载多篇文章
空格分隔多个链接:
python scripts/fetch_wechat_article.py "url1" "url2" "url3" --output-dir ./output
逗号分隔多个链接:
python scripts/fetch_wechat_article.py "url1,url2,url3" --output-dir ./output
自定义下载间隔(默认3秒,避免触发反爬):
python scripts/fetch_wechat_article.py "url1" "url2" --interval 5
同一公众号的文章自动归类到同一目录下。
4. 不下载图片
python scripts/fetch_wechat_article.py "<url>" --no-images
4. 不下载图片
python scripts/fetch_wechat_article.py "<url>" --no-images
5. 作为 Python 库调用
from scripts.fetch_wechat_article import fetch_article, batch_fetch
# 单篇获取并保存
result = fetch_article("https://mp.weixin.qq.com/s/xxxxx", output_dir="./output")
print(result['title'], result['path'])
# 单篇仅获取元数据
meta = fetch_article("https://mp.weixin.qq.com/s/xxxxx", json_only=True)
print(meta['title'])
print(meta['content_text'][:200])
# 批量获取
urls = ["https://mp.weixin.qq.com/s/aaa", "https://mp.weixin.qq.com/s/bbb"]
stats = batch_fetch(urls, output_dir="./output", interval=3.0)
print(f"成功{stats['success']}篇, 失败{stats['fail']}篇")
主要函数参数:
url:文章链接(支持短链接和长链接)output_dir:保存目录(默认:./wechat_articles)download_img:是否下载图片(默认:True)to_markdown:是否转换为 Markdown(默认:True)json_only:仅返回元数据字典,不保存文件
batch_fetch 额外参数:
urls:文章链接列表interval:每篇文章之间的下载间隔秒数(默认:3.0)
注意事项
- 优先使用短链接(
/s/xxxxx)—— 带__biz参数的长链接可能触发验证码。 - 批量下载时默认间隔3秒,可通过
--interval调整,避免触发微信反爬机制。 - 自动使用微信移动端 User-Agent 绕过访问限制。
- 微信图片使用
data-src属性(非src),因为采用了懒加载。 - 下载图片需要设置
Referer: https://mp.weixin.qq.com/请求头。 - HTML 结构详情参见 references/wechat_html_structure.md。
评论
支持 Markdown