一个专业的微信公众号文章图片提取和下载工具,支持智能筛选、批量下载和高清原图获取。
查看 CHANGELOG.md 获取最新更新详情。
Windows用户(推荐):
- 双击运行:
one_click_deploy.bat - ✅ 自动检查Python环境
- ✅ 自动安装所需依赖
- ✅ 自动打开浏览器
- ✅ 无需任何手动配置
所有平台通用:
python one_click_deploy.py- ✅ 支持Windows/Mac/Linux
- ✅ 智能依赖安装(多镜像源)
- ✅ 详细进度反馈
- ✅ 自动处理安装失败
Windows用户(推荐):
- 双击运行:
quick_start.bat - ✅ 跳过环境检查,直接启动
- ✅ 启动速度更快
- ✅ 自动打开浏览器
所有平台通用:
python run.py- ✅ 简单直接启动
- ✅ 适合开发者使用
- 首次使用:运行
one_click_deploy.bat或python one_click_deploy.py - 后续使用:运行
quick_start.bat或python run.py - 在浏览器中访问
http://127.0.0.1:5000 - 粘贴微信公众号文章链接到输入框
- 点击"开始分析"提取图片
- 选择需要的图片预览
- 点击"下载选中图片"获取ZIP文件
💡 提示:应用支持智能筛选,自动排除头像、小图片和GIF动图。
- 智能链接解析:自动识别和解析微信公众号文章结构
- 高清原图提取:获取图片的最高质量版本,而非压缩预览图
- 智能筛选系统:自动排除头像、装饰图、GIF等非正文内容
- 批量下载管理:支持选择性下载和ZIP压缩包输出
- 实时进度监控:完整的处理进度显示和详细日志
- 现代化界面:采用Bootstrap 5设计,界面简洁美观
- 响应式布局:完美适配桌面和移动设备
- 操作直观:仅需输入链接即可一键完成所有操作
- 实时反馈:丰富的状态提示和错误处理机制
- Web框架:Flask 3.0.0
- HTTP处理:requests + beautifulsoup4
- 图片处理:Pillow
- 并发下载:concurrent.futures
- 跨域支持:Flask-CORS
- UI框架:Bootstrap 5.3.0
- 图标库:Font Awesome 6.4.0
- 交互逻辑:原生JavaScript ES6+
- 响应式设计:CSS3 + Flexbox/Grid
- Python 3.8 或更高版本
- 稳定的网络连接
- 现代浏览器(Chrome、Firefox、Safari、Edge)
# 克隆或下载项目文件到本地
# 进入项目目录
cd 微信公众号图片下载助手
# 运行启动脚本(自动检查环境并启动)
python run.py启动脚本会自动完成以下操作:
- ✅ 检查Python版本兼容性
- ✅ 检查并安装依赖包
- ✅ 创建必要的目录结构
- ✅ 配置Git环境(避免意外提交)
- ✅ 启动Web应用
如果自动启动失败,可以手动安装:
# 1. 安装依赖
pip install -r requirements.txt
# 2. 创建目录
mkdir downloads temp logs
# 3. 启动应用
python app.py-
启动应用
python run.py
-
打开浏览器
- 访问:
http://127.0.0.1:5000 - 或局域网访问:
http://[你的IP]:5000
- 访问:
-
输入文章链接
- 复制微信公众号文章链接
- 粘贴到输入框中
- 示例:
https://mp.weixin.qq.com/s/xxxxxxxxxxxxx
-
配置选项(可选)
- 排除头像图片 ✅
- 排除GIF动图 ✅
- 排除小尺寸图片 ✅
- 获取高清原图 ✅
-
开始分析
- 点击"开始分析"按钮
- 等待系统解析文章结构
- 查看识别出的图片预览
-
选择下载
- 勾选需要下载的图片
- 或点击"全选"选择所有图片
- 点击"下载选中图片"
-
获取文件
- 等待下载和打包完成
- 自动下载ZIP压缩包
- 解压即可获得所有图片
系统会自动应用以下筛选规则:
- 位置筛选:排除页眉页脚的装饰图
- 尺寸筛选:排除过小的图标和装饰元素
- 类型筛选:可选择性排除GIF动图
- 语义筛选:基于alt文本和URL特征排除头像等
针对微信图片CDN的特殊处理:
- URL规律识别:自动识别微信图片URL格式
- 参数优化:移除尺寸限制参数获取原图
- 格式保持:保持原始图片格式和质量
- 容错处理:原图获取失败时自动降级
wechat-image-download-assistant/
├── app.py # Flask main application file
├── run.py # Simple startup script
├── one_click_deploy.py # One-click deployment script
├── one_click_deploy.bat # Windows one-click startup
├── quick_start.bat # Windows quick start script
├── one_click_deploy_guide.md # Deployment guide
├── requirements.txt # Python dependencies
├── README.md # Project documentation
├── templates/ # HTML template files
│ └── index.html # Main page template
├── downloads/ # Downloaded files output directory
├── temp/ # Temporary files directory
├── logs/ # Log files directory
└── .PLAN/ # Project planning documents
├── project-overview.md
├── requirements.md
└── ui-mockup.html
# 文件夹配置
DOWNLOAD_FOLDER = "downloads" # 下载文件夹
TEMP_FOLDER = "temp" # 临时文件夹
# 性能配置
MAX_WORKERS = 5 # 最大并发下载数
REQUEST_TIMEOUT = 30 # 请求超时时间(秒)
MAX_IMAGE_SIZE = 50 * 1024 * 1024 # 最大图片大小(50MB)
# 服务器配置
HOST = '0.0.0.0' # 监听地址
PORT = 5000 # 监听端口
DEBUG = True # 调试模式可以在 WeChatImageExtractor._should_skip_image() 方法中自定义筛选规则:
def _should_skip_image(self, img_info: Dict, options: Dict) -> bool:
# 自定义筛选逻辑
alt_text = img_info.get('alt', '').lower()
url = img_info.get('original_url', '')
# 添加自定义关键词
custom_skip_keywords = ['your_custom_keyword']
# 添加自定义URL模式
if 'your_pattern' in url:
return True
return False- 并发下载:支持最多5个图片同时下载
- 断点续传:网络中断时自动重试
- 内存优化:流式下载避免大文件占用内存
- 压缩打包:使用ZIP压缩减少文件大小
- 连接复用:使用Session复用HTTP连接
- 超时控制:合理的超时设置避免长时间等待
- 错误重试:智能重试机制提高成功率
- 用户代理:模拟真实浏览器避免反爬虫
- 个人用途:仅用于个人学习和合法用途
- 版权尊重:请尊重原作者的版权和知识产权
- 服务条款:遵守微信公众平台相关规定
- 频率控制:避免过于频繁的请求
- 反爬虫:微信可能更新反爬虫策略
- 链接时效:部分图片链接可能有时效性
- 网络依赖:需要稳定的网络连接
- 浏览器兼容:建议使用现代浏览器
- 输入验证:严格验证用户输入的URL
- 文件安全:下载的文件仅保存在本地
- 隐私保护:不收集或存储用户个人信息
- 临时清理:定期清理临时文件释放空间
# 升级pip
python -m pip install --upgrade pip
# 手动安装依赖
pip install flask flask-cors requests beautifulsoup4 pillow
# 使用国内源(如果网络慢)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/- 检查链接格式是否正确
- 确认文章是否为公开可访问
- 尝试在浏览器中直接打开链接验证
- 检查网络连接是否稳定
- 某些图片可能有防盗链保护
- 尝试减少并发下载数量
- 确认防火墙设置允许5000端口
- 尝试使用127.0.0.1:5000替代localhost:5000
- 检查是否有其他程序占用5000端口
启用详细日志:
# 在app.py中设置
import logging
logging.basicConfig(level=logging.DEBUG)- 项目概览:
.PLAN/project-overview.md - 详细需求:
.PLAN/requirements.md - UI设计:
.PLAN/ui-mockup.html
- Flask官方文档:https://flask.palletsprojects.com/
- Bootstrap文档:https://getbootstrap.com/docs/5.3/
- requests库文档:https://docs.python-requests.org/
本项目仅供学习和个人使用,请勿用于商业用途。
- ✨ 初始版本发布
- 🎯 完整的微信公众号图片提取功能
- 🎨 现代化的Web界面
- 🚀 智能筛选和批量下载
- 📱 响应式设计支持
🎈 感谢使用微信公众号图片下载助手!如有问题或建议,欢迎反馈。