# xWechatWallper **Repository Path**: xqshadow/x-wechat-wallper ## Basic Information - **Project Name**: xWechatWallper - **Description**: 一个简单易用的微信公众号壁纸图片爬取应用程序,支持图形界面操作,提供直观的用户体验。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-25 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, Qt ## README # 微信公众号壁纸爬取器 一个简单易用的微信公众号壁纸图片爬取应用程序,支持图形界面操作,提供直观的用户体验。 ## 功能特点 ### 核心功能 1. **图形界面操作**:基于PyQt5的直观GUI界面,无需命令行操作 2. **智能爬取**:自动从微信公众号文章中识别并提取图片资源 3. **选择性爬取**:仅爬取URL结尾为"640"的图片资源 4. **唯一文件名**:通过URL参数、MD5哈希和时间戳确保文件名唯一性 5. **文件整理**:根据文章标题自动创建文件夹,将图片分类存放 6. **断点续传**:支持大文件下载中断后恢复 7. **图片校验**:确保下载的图片文件完整性 8. **元数据记录**:生成包含图片URL、下载时间等信息的JSON文件 ### 增强功能 9. **错误处理**:完善的异常处理机制,确保程序稳定运行 10. **请求控制**:合理设置请求间隔,避免服务器负载过大 11. **过滤统计**:统计过滤掉的不符合条件的图片数量 12. **robots协议检查**:尊重网站的爬取规则 13. **爬取报告**:提供完整的爬取报告,包括成功/失败统计 14. **图片预览**:内置图片预览功能,支持缩放查看 15. **已下载管理**:浏览已下载的图片和文件夹 16. **滚动条美化**:优化滚动条样式,提升用户体验 17. **自定义图标**:使用自定义蓝色文件夹图标,增强视觉效果 18. **窗口自适应**:窗口高度自适应系统屏幕高度 ## 项目结构 ``` 微信公众号壁纸爬取器/ ├── README.md # 项目说明文档 ├── requirements.txt # 依赖包列表 ├── start.sh # 启动脚本 ├── setup.py # 安装脚本 ├── wechat_wallpaper_crawler.py # 命令行版本 ├── icons/ # 图标资源目录 │ ├── app_icon.svg # 应用图标 │ ├── app_icon.icns # macOS应用图标 │ └── folder_icon.svg # 自定义文件夹图标 ├── core/ # 核心功能模块 │ ├── __init__.py │ ├── crawler_core.py # 核心爬取逻辑 │ └── network.py # 网络请求模块 ├── ui/ # 用户界面模块 │ ├── __init__.py │ ├── main_app.py # GUI主应用程序 │ ├── crawl_tab.py # 爬取标签页 │ ├── browse_tab.py # 图片浏览标签页 │ └── image_previewer.py # 图片预览功能 ├── utils/ # 工具模块 │ ├── __init__.py │ ├── file_utils.py # 文件操作工具 │ └── logger.py # 日志记录模块 ├── parser/ # 解析模块 │ ├── __init__.py │ └── parser.py # 微信公众号文章解析器 ├── config/ # 配置文件 │ └── __init__.py └── wallpapers/ # 默认图片保存目录 ``` ## 技术说明 ### 文件名生成机制 程序通过以下方式确保生成唯一的文件名: 1. 提取URL中有意义的部分 2. 加入URL参数"640" 3. 计算URL的MD5哈希值并取前8位 4. 添加精确到毫秒的时间戳 ### URL过滤规则 程序只会下载以下类型的图片URL: 1. URL以"/640"结尾 2. URL以"_640"结尾 3. URL路径中包含"/640" ### 文件整理功能 程序会: 1. 自动提取微信公众号文章的标题 2. 清理标题,确保符合操作系统命名规范(移除或替换特殊字符) 3. 在根目录下创建以文章标题命名的文件夹 4. 将所有下载的图片统一存放于该文件夹中 5. 处理同名文件夹冲突(自动添加序号后缀) ### robots协议检查 程序会检查网站的robots.txt文件,确保只爬取允许的内容。 ### 请求间隔设置 默认请求间隔为1秒,可以通过调整`request_interval`参数控制。 ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 使用方法 ### 图形界面方式(推荐) 1. 运行应用程序(使用启动脚本): ```bash ./start.sh ``` 2. 或者直接运行Python模块: ```bash python -m ui.main_app ``` 3. 在图形界面中: - **URL输入区域**:输入微信公众号文章URL - **保存设置区域**:选择图片保存目录(默认为当前目录下的"wallpapers"文件夹) - **控制区域**:点击"开始下载"按钮启动爬取,"停止下载"按钮中断下载 - **下载进度区域**:显示当前下载进度 - **日志信息区域**:显示下载过程中的详细日志 - **爬取报告区域**:显示完整的爬取结果报告 - **已下载图片列表**:浏览和管理已下载的图片 ### 命令行方式 1. 运行程序: ```bash python wechat_wallpaper_crawler.py ``` 2. 按照程序提示输入微信公众号文章URL ## 应用程序界面 ### 爬取标签页 - **URL输入区域**:输入微信公众号文章URL - **保存设置区域**:选择图片保存目录 - **控制区域**:开始/停止下载按钮 - **下载进度区域**:显示下载进度 - **日志信息区域**:显示下载过程中的详细日志 - **爬取报告区域**:显示完整的爬取结果报告 ### 图片浏览标签页 - **文件夹列表**:显示已下载图片的文件夹结构 - **图片列表**:显示当前文件夹中的图片缩略图 - **图片预览**:点击图片可进行预览 ## 更新日志 - v1.2.0 (2025-12-27) - 优化项目结构,将文件按功能分类到不同文件夹 - 更新启动脚本,支持更方便的运行方式 - 修复文件夹图标路径问题 - v1.1.5 (2025-05-10) - 修复状态栏显示问题 - 优化窗口高度自适应系统屏幕 - 美化滚动条样式 - 添加自定义文件夹图标 - v1.1.0 (2025-04-23) - 新增图形界面版本 - 优化用户体验 - 完善文档 - v1.0.0 - 初始版本发布 - 支持命令行操作 - 实现基本的图片爬取功能 ## 许可证 本项目采用MIT许可证。