手机不用root,一台电脑教你导出微信聊天记录

目录

导语

工具

原理

步骤

步骤截图

首先登录电脑微信,备份聊天记录到电脑上

电脑下载安卓模拟器(鄙人用的是夜神)

安卓模拟器下载并安装微信

模拟器登录微信

获取微信的uin号

获取手机IMEI码

将IMEI(MEID)+uin进行MD5,取其前7位就是密码(32位小写),保存下来

电脑微信还原聊天记录到安卓模拟器微信上

获得数据库文件复制到电脑上

对EnMicroMsg.db解密(使用sqlcipher这个工具数据库查看)

导出数据库表格为csv文件打开

完成

附加做成词云代码

结语


导语

    是否还在为无法导出聊天级录而苦恼?史上最强攻略来了,不用root手机,不用会代码,不限制任何机型,只要你有一颗想动手的心!

工具

  1. 电脑(笔记本,台式都行)
  2. md5转换网址

原理

微信聊天数据是一个db文件,而我们知道db里面是各种表,表里就有我们想要的聊天信息,但是微信的数据库不可能不加密,经过百度我们可以知道它的密码是由微信的uin号加上手机的IMEI码进行MD5加密取前7位构成的,但是数据库文件肯定不让我们获得,除非获得手机最高权限,也就是root,但是现在的手机基本不准root了,咋办呢?其实这不是难题,有电脑啥都好说。因此我们就可以大展手脚了。

步骤

  1. 首先登录电脑微信,备份聊天记录到电脑上
  2. 电脑下载安卓模拟器(鄙人用的是夜神)
  3. 获取手机IMEI码
  4. 安卓模拟器下载并安装微信
  5. 模拟器登录微信
  6. 获取微信的uin号
  7. 将IMEI(MEID)+uin进行MD5,取其前7位就是密码(32位小写),保存下来
  8. 电脑微信还原聊天记录到安卓模拟器微信上
  9. 获得数据库文件复制到电脑上
  10. 对EnMicroMsg.db解密(使用sqlcipher这个工具数据库查看)
  11. 导出数据库表格为csv文件
  12. 完成

步骤截图

  1. 首先登录电脑微信,备份聊天记录到电脑上

    1. 这一步就不用截图了,自己手机跟电脑连在同一个wifi下,然后电脑端选择备份记录到电脑,手机确认就可以了,备份完后自己手机登出微信帐号
  2. 电脑下载安卓模拟器(鄙人用的是夜神)

    1. 这一步也不用截图了,自己下载模拟器去
  3. 安卓模拟器下载并安装微信

  4. 模拟器登录微信

  5. 获取微信的uin号

    1. 模拟器微信登录成功后打开模拟器文件管理器
    2. 打开微信存储路径,这里模拟器会使用root模式,模拟器一般都是root的,微信存储路径一般为data/data/com.tencent.mm/MicoMsg
    3. 进入MicoMsg后在当前文件夹下找到system_config_prefs.xml文件
    4. 将该文件复制出来,夜神有个模拟器跟电脑共享文件夹,在旁边,叫文件助手,我们先选中该文件,然后打开安卓共享文件夹,进入粘贴选择项就ok了
    5. 然后打开模拟器文件助手,打开电脑端文件夹就可以看到system_config_prefs.xml文件,我们用记事本打开就可以找到uin号,复制保存下来
  6. 获取手机IMEI码

    1. 打开自己模拟器的设置界面,这里以夜神为例,在手机与网络就有生成的IMEI码,使用默认的,不要随机创建,复制保存下来
  7. 将IMEI(MEID)+uin进行MD5,取其前7位就是密码(32位小写),保存下来

    1. 到该网站进行转换,选择32位(小)md5转换网址
    2. uin: 688275***
      
      imei: 865166010121179
      
      md5: 6a8ecae00ba2f96e7e90c0268090c8db
      
      前七位: 6a8ecae
  8. 电脑微信还原聊天记录到安卓模拟器微信上

  9. 获得数据库文件复制到电脑上

    1. 到刚才所说的微信路径下找到EnMicroMsg.db并选择复制到电脑共享文件夹下
  10. 对EnMicroMsg.db解密(使用sqlcipher这个工具数据库查看)

    1. 复制出来后模拟器就没啥用了,交给电脑了
    2. 我们打开sqlcipher这个工具数据库打开EnMicroMsg.db输入密码就可以查看了
    3. 聊天记录在message这个表格中,我们按图中所示导出该表格为csv文件
    4. 导出成功
  11. 导出数据库表格为csv文件打开

    1. 表格属性中isSend值为1就是我们本人发送,0则是对方发送,createTime 聊天时间戳 content 聊天内容
  12. 完成

附加做成词云代码

import openpyxl
import threading

#多线程处理,本人聊天记录为73622行,四个线程处理,每个17000多行,我先将无关列删去,留下四列,序号,isSend,createTime,还有content,所以我选择判断是谁发送的,再保存聊天记录
def cxk1():
    for i in range(2,17905):
        try:
            #判断是谁发送
            if str(sh.cell(row=i, column=1).value)=='0':
                #保存第四列的聊天记录
                file.write('傻猪:'+sh.cell(row=i, column=4).value+'\n')
            else:
                file.write('\t\t\t\t\t\t\t'+sh.cell(row=i, column=4).value+':帅哥凯'+'\n')# A表示列,1表示行
        except:
            continue
    print('1_ok')
def cxk2():
    for i in range(17905,35810):
        try:
            if str(sh.cell(row=i, column=1).value)=='0':
                file.write('傻猪:'+sh.cell(row=i, column=4).value+'\n')
            else:
                file.write('\t\t\t\t\t\t\t'+sh.cell(row=i, column=4).value+':帅哥凯'+'\n')# A表示列,1表示行
        except:
            continue
    print('2_ok')
    
def cxk3():
    for i in range(35810,53715):
        try:
            if str(sh.cell(row=i, column=1).value)=='0':
                file.write('傻猪:'+sh.cell(row=i, column=4).value+'\n')
            else:
                file.write('\t\t\t\t\t\t\t'+sh.cell(row=i, column=4).value+':帅哥凯'+'\n')# A表示列,1表示行
        except:
            continue
    print('3_ok')
    
def cxk4():
    for i in range(53715,71622):
        try:
            if str(sh.cell(row=i, column=1).value)=='0':
                file.write('傻猪:'+sh.cell(row=i, column=4).value+'\n')
            else:
                file.write('\t\t\t\t\t\t\t'+sh.cell(row=i, column=4).value+':帅哥凯'+'\n')# A表示列,1表示行
        except:
            continue
    print('4_ok')
    
def fun1():
    th=threading.Thread(target=cxk1)
    th.setDaemon(True)#守护线程
    th.start()
def fun2():
    th=threading.Thread(target=cxk2)
    th.setDaemon(True)#守护线程
    th.start()
    
def fun3():
    th=threading.Thread(target=cxk3)
    th.setDaemon(True)#守护线程
    th.start()
    
def fun4():
    th=threading.Thread(target=cxk4)
    th.setDaemon(True)#守护线程
    th.start()
    
#将聊天记录导出到txt文件
file = open('CxkAndLhm.txt','w')

#你导出的微信聊天记录文件,先将csv转为xlsx文件
wb = openpyxl.load_workbook('weixin.xlsx')
sh = wb['weixin']
fun1()
fun2()
fun3()
fun4()
wb.close()
file.close()



# 词云库
from wordcloud import WordCloud
import PIL .Image as image
import numpy as np
with open("CxkAndLhm.txt") as fp:
    text=fp.read()
#     print(text)
#     将文本放入WordCoud容器对象中并分析
    
    # 词云图片
    mask = np.array(image.open("1.jpg"))

    #字体:C:\Windows\Fonts\FZSTK.TTF  C:\Windows\Fonts\FZLTCXHJW.TTF
    font="C:\Windows\Fonts\FZLTCXHJW.TTF"
    
    WordCloud =WordCloud(
        # 设置字体,不指定就会出现乱码
        font_path=font,  # 这个路径是pc中的字体路径
        
        # 设置背景色
        background_color='white',
        
        # 词云形状
        mask=mask,
        
        # 允许最大词汇
        max_words=100,
        
        # 最大号字体
        max_font_size=100,
        
        # 设置有多少种随机生成状态,即有多少种配色方案
        random_state=30,
        
        # 清晰度
        scale=3
    ).generate(text)
    
    image_produce = WordCloud.to_image()
    image_produce.show()
print('完成')

 

结语

到这我们就完成了微信聊天数据的导出,我们可以用导出的数据进行处理了,做成词云或者数据清洗都行。编写不易,留赞可行?

发布了41 篇原创文章 · 获赞 27 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Cxk___/article/details/104874421
今日推荐