背景
由于张女士在过去几年内丢了(包括坏了)好几部手机,所以娃小时候的很多照片都找不到了。所幸,她经常在朋友圈发娃的照片。
某日突然聊到这个话题,她问:你不是学计算机的吗?能不能把我朋友圈的照片都下载下来?
虽然我不太熟悉python这个爬虫工具,但是说不定可以用,于是我答:我也不知道呢。可能可以写一些程序或者用一些工具弄下来吧。
她回:相信你,一定可以的!
于是,我想到了强大的Github,这方面的事情说不定有人做过吧?于是,我在Github上面用wechat moment关键字一找就找到了WeChatMomentStat-Android这个工具。
工具
- MuMu安卓模拟器
- WeChatMomentStat-Android的apk安装包 (安装在模拟器上)
- ES文件管理器 (安装在模拟器上)
- 百度网盘账号
- Notepad++,包括插件:JSTool
- Powershell
步骤
- 先在电脑上安装Mumu安卓模拟器
- 在模拟器的安卓系统中安装微信,WeChatMomentStat,ES文件管理器
- 在模拟器的安卓系统中打开微信,登录微信,点击
我
->相册
,一直拉到最下面。 - 在模拟器的安卓系统中以root权限打开WeChatMomentStat,点击
运行
,点击导出朋友圈数据,
如果需要的话筛选下结果,点击导出
。之后,这个应用在系统的WechatMomentStat
目录下会生成一个文件exported_sns.json
。 - 在模拟器的安卓系统中以root权限打开ES文件管理器,把上述步骤中的
exported_sns.json
文件拷贝到网盘中 - 在电脑上把网盘中的
exported_sns.json
文件下载到本地 -
用Notepad++打开这个文件,并如下编辑
- 先用插件
JSTool
的JSON Viewer
把文件重新排版一下 - 在Extended模式下把
<![CDATA[
全部替换成\r\n<![CDATA[
- 在Extended模式下把
]]><
全部替换成]]>\r\n<
- 如果要找照片的话,在Regular Expression模式下搜索所有的
CDATA\[http\:\\\/\\\/(sh)?mmsns([^]]*)\/0"?\]
- 如果要找视频的话,在Regular Expression模式下搜索所有的
CDATA\[http\:\\\/\\\/(vweixinf|shzjwxsns)([^]]*)"?\]
- 把查询结果拷贝到一个新文件,在新文件里面继续编辑
- 在Regular Expression模式下把
Line[^:]*:
全部替换成空
- 在普通模式下把
<![CDATA[
全部替换成空
- 在普通模式下把
]]>
全部替换成空
- 在普通模式下把
\/
全部替换成/
- 在Extended模式下把
\r\n
替换成"\r\n$Urls += "
- 先用插件
- 经过上述的步骤,我们得到了所有视频和照片的网址
-
创建一个如下的Powershell程序,命名为譬如gary_pic.ps1,把上述的网址贴到这个ps1文件里,调整下载目录,Index参数,还有下载文件后缀名(
.jpg, .mp4
)$Urls = @() $Urls += "http://mmsns.qpic.cn/mmsns/xxxxx1/0" $Urls += "http://mmsns.qpic.cn/mmsns/xxxxx2/0" $Urls += "http://mmsns.qpic.cn/mmsns/xxxxx3/0" $OutPath = "C:\Download\gary_pic\" $Index = 3 ForEach ( $item in $Urls) { $file = $OutPath + $Index + ".jpg" Write-Output $Index (New-Object System.Net.WebClient).DownloadFile($item, $file) $Index = $Index - 1 }
- 在当前目录运行Powershell,执行
.\gary_pic.ps1
,之后你会看到这个Powershell程序正在批量地把文件下载到目录C:\Download\gary_pic\
中
结果
花了几个小时,终于成功把朋友圈的好几千张照片和几百个视频都下载到本地了!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。