该工具用于抓取微信公众号文章内容,并将其转换为Markdown格式,同时自动下载文章中的图片到本地。
python scripts/information/fetch_wechat_article.py <微信公众号文章链接>
python scripts/information/fetch_wechat_article.py <微信公众号文章链接> <输出目录>
python scripts/information/fetch_wechat_article.py <微信公众号文章链接> [输出目录] --json
JSON模式会输出标准JSON格式的响应,包含完整的文章数据和图片信息,适合API调用使用。
# 使用默认输出目录(data/wechat_articles)python scripts/information/fetch_wechat_article.py https://mp.weixin.qq.com/s/z_hmNFWK4vgZUPaa95-qqA # 指定自定义输出目录python scripts/information/fetch_wechat_article.py https://mp.weixin.qq.com/s/z_hmNFWK4vgZUPaa95-qqA ./my_articles # JSON模式(用于API调用)python scripts/information/fetch_wechat_article.py https://mp.weixin.qq.com/s/z_hmNFWK4vgZUPaa95-qqA --json # JSON模式 + 指定输出目录python scripts/information/fetch_wechat_article.py https://mp.weixin.qq.com/s/z_hmNFWK4vgZUPaa95-qqA ./my_articles --json
脚本会在输出目录下创建以文章标题命名的文件夹,包含以下文件:
data/wechat_articles/ └── 文章标题/ ├── 文章标题.md # Markdown格式的文章内容 ├── metadata.json # 文章元数据(JSON格式) └── images/ # 文章中的图片 ├── 001_image.jpg ├── 002_图片描述.png └── ...
包含完整的文章内容,格式为Markdown:
包含文章的元数据信息:
{ "title": "文章标题", "author": "作者名称", "account_name": "公众号名称", "publish_time": "发布时间", "url": "原始文章链接", "images_count": 5, "keywords": ["关键词1", "关键词2", "关键词3"], "download_time": "2025-01-XX XX:XX:XX"}
字段说明:
title: 文章标题author: 作者名称(已去除重复单词)account_name: 公众号名称publish_time: 发布时间url: 原始文章链接images_count: 图片数量keywords: 关键词列表(最多5个,每个关键词最多10个字)download_time: 下载时间包含文章中的所有图片,文件名格式为:
001_图片描述.jpg(如果有alt文本)001_image.jpg(如果没有alt文本)脚本依赖以下Python包(已在 requirements.txt 中):
requests - HTTP请求beautifulsoup4 - HTML解析chardet - 字符编码检测jieba - 中文分词和关键词提取(可选,未安装时使用简单方法)注意:jieba 是可选的。如果未安装,脚本会使用简单的词频统计方法提取关键词,但效果可能不如使用 jieba。
当使用 --json 参数时,脚本会输出标准JSON格式的响应,适合API调用使用。
{ "status": 200, "message": "文章抓取成功", "data": { "success": true, "title": "文章标题", "author": "作者名称", "account_name": "公众号名称", "publish_time": "发布时间", "url": "原始文章链接", "content_markdown": "Markdown格式的正文内容(不包含标题和元信息)", "content_html": "原始HTML内容", "keywords": ["关键词1", "关键词2", "关键词3"], "images": [ { "url": "图片URL", "alt": "图片描述", "original_tag": "原始img标签" } ], "images_count": 5, "images_dir": "图片保存目录路径", "image_filename_map": { "图片URL": "本地文件名" }, "cache_dir": "缓存目录路径" }}
{ "status": 500, "message": "文章抓取失败", "data": { "error": "错误信息", "success": false }}
注意:JSON模式下,图片仍会下载到本地缓存目录,同时返回图片目录路径和文件名映射,方便API后续处理。
requests 库发送HTTP请求,模拟浏览器访问BeautifulSoup 解析HTML内容jieba(可选)进行中文分词和关键词提取,支持TF-IDF算法