简介这是一款面向微信重度用户与数据留存需求者的朋友圈导出工具可将电脑端微信浏览过的朋友圈内容整理为HTML页面支持图片、视频下载后离线查看与永久保存并能按联系人或时间范围过滤导出适合需要备份社交记录、整理素材或做个人归档的Windows用户。资源包共约2000个文件压缩后127.75MB以dat数据文件、msg消息记录、enc加密文件、pyd与dll运行库、py脚本及大量时区配置文本为主整体为便携式绿色程序结构解压即可按提示运行。目前已有632人学习下载。需要注意的是工具强依赖微信Windows客户端仅能导出电脑微信中浏览过的朋友圈记录且只提供Windows版本建议在Python3.11配合Win10/Win11环境下使用异常时重启微信与软件即可恢复。1. 朋友圈数据导出WechatMoments v0.0.1 便携版到底能拿到什么微信朋友圈的数据一直躺在腾讯的服务器里官方只给你一个「备份到电脑」的入口导出来的是一坨加密的.db文件想按时间线翻看某年某月某条动态基本靠运气。WechatMoments v0.0.1 便携版这个工具做的事情很直接把朋友圈里你能看到的图文动态按时间顺序抓下来落成 HTML 或 JSON 文件双击就能在浏览器里翻。它不碰聊天记录不碰支付信息只处理朋友圈这个相对独立的模块。便携版意味着解压即用不写注册表不往系统目录塞 DLLU 盘里一放换台机器照样跑。适合谁做个人数据归档的、想把自己十年朋友圈导出来留个底的人、以及需要批量整理素材的自媒体从业者。但先说清楚它只能拿到你账号权限内可见的内容别人的私密朋友圈、已删除的动态、以及被屏蔽的条目它一样拿不到。2. 便携版的环境准备与首次运行从解压到看到第一条动态2.1 为什么选便携版而不是安装版便携版的核心优势在于隔离。安装版通常会往%APPDATA%和注册表里写配置换机器就得重新登录、重新授权。便携版把配置、缓存、导出结果全部放在程序同级目录下整个文件夹拷走就能迁移。对于朋友圈导出这种低频但需要长期保留工具的场景便携版省去了「过半年想再导一次发现安装版更新后登录态失效」的麻烦。另一个现实原因是这类工具往往依赖特定版本的运行时库安装版可能和系统里已有的环境冲突便携版自带依赖不污染全局。2.2 解压后的目录结构与关键文件拿到压缩包后解压到一个纯英文路径下比如D:\Tools\WechatMoments。中文路径在部分 Windows 环境下会导致运行时找不到资源文件这是血泪经验。解压后典型结构如下WechatMoments/ ├── WechatMoments.exe # 主程序 ├── config.ini # 配置文件首次运行后生成 ├── data/ # 缓存目录存放登录态和临时数据 ├── output/ # 默认导出目录 ├── runtime/ # 便携运行时不要删 └── README.txt # 简要说明runtime目录是便携版的灵魂里面打包了程序依赖的运行时环境。很多人解压后看到这个文件夹占了几百 MB顺手删掉结果程序直接闪退。config.ini首次运行才会生成里面控制导出格式、并发数、超时时间等参数。2.3 首次运行的登录与授权流程双击WechatMoments.exe程序会拉起一个内嵌的浏览器窗口让你扫码登录微信。这里注意它用的是网页版微信的协议不是 PC 客户端的 Hook。扫码后程序会在data/目录下生成一个session.json里面存着登录凭证。这个文件有时效性通常几天到一周不等过期后需要重新扫码。登录成功后程序会自动拉取你的朋友圈时间线。首次拉取建议只拉最近一个月确认流程跑通再全量导出。在界面上找到「导出范围」选项选择「最近 30 天」点击「开始导出」。观察output/目录如果出现moments_2025-01.html这样的文件说明链路通了。注意首次运行如果卡在「正在加载朋友圈」超过 30 秒大概率是网络请求被拦截或超时。检查config.ini里的timeout值默认是 15 秒可以临时调到 30 秒再试。3. 导出参数怎么调并发、分页与媒体文件下载的取舍3.1 config.ini 里的五个核心参数打开config.ini你会看到类似下面的内容。不同版本字段名可能略有差异但核心逻辑一致[export] format html ; 导出格式html / json / both start_date 2015-01-01 end_date 2025-12-31 download_media true ; 是否下载图片和视频 media_quality original ; original / compressed max_concurrent 3 ; 并发请求数 page_size 20 ; 每次拉取的动态条数 timeout 15 ; 单次请求超时秒数 retry 2 ; 失败重试次数format选both会同时生成 HTML 和 JSON。HTML 适合人看JSON 适合后续用脚本处理。download_media设为true时程序会把每条动态里的图片和视频下载到output/media/下按动态 ID 分文件夹存放。这个选项是耗时大户一条带九宫格的动态下载原图可能就要十几秒。3.2 并发数与封控风险的实际平衡max_concurrent控制同时发起的请求数。设得太低导出几千条动态要跑几个小时设得太高请求频率上去后容易触发风控表现为返回空数据或要求重新登录。我一般设 3在稳定性和速度之间取平衡。如果你只导最近半年的数据可以临时调到 5但不要超过 8。page_size是每次向服务器请求的动态条数。微信朋友圈的接口通常一页返回 20 条左右设太大没用设太小会增加请求次数。保持默认 20 即可。3.3 媒体文件下载的三种策略媒体文件是导出过程中最耗时的部分。三种策略策略配置适用场景耗时参考1000 条动态全量原图download_mediatrue, media_qualityoriginal个人归档要求画质2-4 小时压缩图download_mediatrue, media_qualitycompressed快速浏览省空间30-60 分钟不下载download_mediafalse只要文字和时间线5-10 分钟如果先跑文字版确认数据完整性可以把download_media设为false等确认无误后再单独跑一次媒体下载。程序支持增量导出第二次运行时会跳过已下载的文件。3.4 用 JSON 输出做二次处理的示例导出 JSON 后可以用 Python 快速统计每年的动态数量import json from collections import Counter from datetime import datetime with open(output/moments.json, r, encodingutf-8) as f: data json.load(f) # 假设每条动态有 timestamp 字段Unix 时间戳 years Counter() for item in data: ts item.get(timestamp) if ts: year datetime.fromtimestamp(ts).year years[year] 1 for year in sorted(years): print(f{year}: {years[year]} 条)这段代码读取导出的 JSON按年份统计动态数量。timestamp字段是 Unix 时间戳datetime.fromtimestamp转成本地时间。如果你的导出文件里时间字段是字符串格式需要先用datetime.strptime解析。统计结果可以帮你判断哪一年的数据缺失比如某年突然只有几条可能是那段时间设置了「仅三天可见」或分组可见。4. 避坑与排查导出中断、乱码、媒体丢失的常见原因4.1 导出到一半程序无响应现象进度条卡在某个百分比不动界面变灰任务管理器显示进程 CPU 占用为 0。原因通常是某个请求超时后没有正确释放连接或者遇到了一个包含异常字符的动态解析时抛异常但没被捕获。解决先等 30 秒如果没恢复强制结束进程。打开config.ini把timeout从 15 调到 30retry从 2 调到 3。重新运行程序会从上次中断的位置继续。如果反复卡在同一位置把start_date往后调一天跳过那条动态导出完成后再单独处理。4.2 导出的 HTML 打开后中文显示为乱码现象浏览器打开moments_xxx.html所有中文变成「测试」这样的字符。原因HTML 文件头里声明的编码和实际写入的编码不一致。常见于程序在中文 Windows 上默认用 GBK 写入但 HTML meta 标签写的是 UTF-8。解决用记事本打开 HTML 文件另存为时把编码选为 UTF-8。如果文件多用 PowerShell 批量转Get-ChildItem output\*.html | ForEach-Object { $content Get-Content $_.FullName -Raw -Encoding Default [System.IO.File]::WriteAllText($_.FullName, $content, [System.Text.Encoding]::UTF8) }这段脚本把output目录下所有 HTML 文件从系统默认编码转成 UTF-8。-Encoding Default在中文 Windows 上就是 GBK。转完后重新打开乱码消失。4.3 图片下载了但打不开文件大小只有几 KB现象output/media/下的图片文件存在但双击提示「文件损坏」或显示空白文件大小明显偏小。原因微信的图片 CDN 对请求头有校验缺少Referer或User-Agent不匹配时返回的是一个占位图或错误页而不是真实图片。程序如果没正确处理这种情况就会把错误响应保存成图片文件。解决检查config.ini里是否有user_agent和referer配置项。如果有确保referer填的是https://mp.weixin.qq.com/。如果没有这两个配置项说明版本不支持自定义请求头只能等工具更新。临时方案是手动在浏览器里登录网页版微信逐条保存图片但效率极低。4.4 重新登录后导出数据重复现象第二次导出后JSON 文件里同一条动态出现了两次。原因程序按时间范围拉取但没有做去重。第一次导出到 2025-06-01第二次从 2025-01-01 开始重叠部分就被重复写入。解决导出前把start_date设为上次导出的end_date加一天。或者用 Python 对 JSON 去重import json with open(output/moments.json, r, encodingutf-8) as f: data json.load(f) seen set() unique [] for item in data: # 用动态 ID 或时间戳内容哈希作为唯一键 key item.get(id) or f{item[timestamp]}_{hash(item.get(content,))} if key not in seen: seen.add(key) unique.append(item) with open(output/moments_dedup.json, w, encodingutf-8) as f: json.dump(unique, f, ensure_asciiFalse, indent2)id字段是微信给每条动态分配的唯一标识优先用它去重。如果没有id用时间戳加内容哈希兜底。ensure_asciiFalse保证中文正常写入indent2让 JSON 可读。4.5 便携版换电脑后提示「设备不匹配」现象把整个文件夹拷到另一台电脑运行后提示登录失败或设备异常。原因data/session.json里除了登录凭证还可能绑定了设备指纹如网卡 MAC 地址的哈希。换机器后指纹变了服务端拒绝。解决删除data/session.json重新扫码登录。这是便携版的正常代价——登录态不跨设备。如果你经常换机器建议在每台机器上单独保留一份data/目录程序主体共用登录态各自独立。5. 进阶把导出的朋友圈变成可检索的个人时间线5.1 用 SQLite 做全文检索JSON 文件适合程序处理但不方便人肉搜索。把导出的数据导入 SQLite配合 FTS5 全文索引就能实现「搜关键词秒出结果」。import json import sqlite3 conn sqlite3.connect(moments.db) conn.execute( CREATE VIRTUAL TABLE IF NOT EXISTS moments_fts USING fts5(content, date, location, tokenizeunicode61) ) with open(output/moments.json, r, encodingutf-8) as f: data json.load(f) for item in data: conn.execute( INSERT INTO moments_fts (content, date, location) VALUES (?, ?, ?), (item.get(content, ), item.get(date, ), item.get(location, )) ) conn.commit() conn.close()tokenizeunicode61让 FTS5 支持中文分词。导入后用SELECT * FROM moments_fts WHERE moments_fts MATCH 关键词就能检索。content存文字内容date和location作为辅助过滤字段。数据量大的话给date加个普通索引。5.2 生成按年分组的静态站点如果你想把朋友圈做成一个可以分享给家人看的静态网站可以用 Python 的jinja2模板生成按年分组的 HTML 页面。核心思路读 JSON按年份分组每年一个 HTML 文件首页放年份导航。from jinja2 import Template import json from collections import defaultdict from datetime import datetime with open(output/moments.json, r, encodingutf-8) as f: data json.load(f) by_year defaultdict(list) for item in data: year datetime.fromtimestamp(item[timestamp]).year by_year[year].append(item) template Template( !DOCTYPE html htmlheadmeta charsetutf-8title{{ year }}年朋友圈/title/head body h1{{ year }}年共{{ items|length }}条/h1 {% for item in items %} div classmoment p classdate{{ item.date }}/p p classcontent{{ item.content }}/p /div {% endfor %} /body/html ) for year, items in sorted(by_year.items()): html template.render(yearyear, itemsitems) with open(foutput/year_{year}.html, w, encodingutf-8) as f: f.write(html)这段代码按年份生成独立的 HTML 文件每个文件里按时间顺序列出当年的动态。jinja2的Template类负责渲染{{ }}里是变量{% %}里是控制流。生成的文件可以直接扔进任何静态托管服务或者本地双击打开。5.3 一个我常用的验证习惯每次导出完成后我不会直接相信工具的报告。我会随机抽三条动态在手机微信里找到对应的原始条目逐字对比文字、图片数量、发布时间。这个习惯帮我抓到过两次问题一次是某条动态的图片顺序乱了另一次是 emoji 被转义成了乱码。工具再好数据完整性也得自己把关。导出不是终点能放心地把原始数据删掉、只留导出结果才算真正完成归档。希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
用Git在GitHub上做版本更新:从提交到Release的完整工作流 我就直接说结论:把“用git在GitHub上实现版本更新”这件事做顺,核心不是记住多少条命令,而是先把“本地提交、远程推送、发布打版”这条主链路跑通,再慢慢补齐分支、回滚、多人协作这些进阶操作。这篇文章会从整体工作流一路拆到具… · 2026/9/26 11:49:01
从数据质检到运行审计:金融AI智能体安全落地的全链路实践 金融行业有一个很有意思的现象:ChatGPT时代大家还在讨论“能不能用”,AI智能体时代已经开始讨论“敢不敢放权”了。数据质检、运行审计这些词,过去长期属于数仓团队和风控团队的日常工作,现在却被做AI项目的同学反复挂在嘴边——原… · 2026/9/26 11:49:01
SEED数据集EEG情绪识别:Python源码实战与避坑指南 简介:基于SEED数据集的脑电情绪识别系统源码与设计报告,主要面向计算机、自动化等专业学生,适用于课程设计、期末大作业或项目实战演练等场景。项目经导师指导并获96.5分高分,运行稳定,可直接复用。压缩包共18个文件&a… · 2026/9/26 11:49:01
Atlas 300V 24G部署YOLO全流程:从硬件到推理优化 从标题“atlas”出发,这篇文章我想聊聊一个非常具体的东西:在Atlas 300V 24G这张运算加速卡上,把YOLO目标检测模型部署到生产环境的完整过程。热搜里那句“atlas 300v 24g 是运算加速卡吗”,可以很直接地回答——是的,… · 2026/9/26 12:25:00
军工保密资质年度风险自评估报告:法规依据、内容模型与提交校验 定义: 年度风险自评估报告是军工保密资质单位的法定年度义务,依据《武器装备科研生产单位保密资质管理办法》(保发〔2025〕2 号)第 35 条,应当于每年 3 月 31 日前向实施机关报送。一级资质报国家保密行政管理部门&… · 2026/9/26 12:25:00
SAP SM36后台作业实操指南:从创建到排错的完整解析 做SAP运维的,没有谁没被凌晨的电话吵醒过。客户在电话里说“昨天夜里的批作业没跑,今天早上报表数据全不对”,你睡眼惺忪地打开系统一看,SM37里那个作业还挂在Scheduled状态,压根没释放。这种场景我经历过太多次&#… · 2026/9/26 12:24:54
葡萄酒质量分析数据挖掘大作业:Python完整流程与避坑指南 简介:这是一份面向计算机相关专业学生的数据挖掘课程设计资源,以Python实现葡萄酒质量分析为完整案例,适合正在准备期末大作业或希望积累实战经验的学习者。项目围绕酒精含量、酸度、密度等变量与葡萄酒质量评定的关系展开,覆盖数… · 2026/9/26 12:24:54
Atlas 300V 24G部署YOLO全解析:从推理加速卡定位到实操踩坑 Atlas这个词,搞AI的人这两年多少都听过。如果你关注过华为的AI计算产品线,应该知道Atlas是华为的AI计算品牌,旗下有Atlas 300V、Atlas 300I、Atlas 800等多个系列。最近“Atlas 300V 24G是不是运算加速卡”“能不能部署YOLO”这类问题在社区里… · 2026/9/26 12:24:47
算符优先分析法C语言实现:优先关系表构建与移进归约核心算法详解 开头 说到编译原理这门课,算符优先分析算法应该是很多人在语法分析这一章第一次真正动手写代码的地方。当年我也是从“文法、推导、归约到底都是啥”的懵圈状态过来的,到现在还能记得调试优先关系表时的那种抓狂感——明明照着书上的算法写的,… · 2026/9/26 12:24:41
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46