使用Python获取微信好友信息并保存

  1. 使用Python获取微信好友信息并保存
    1. 1、编程思路
    2. 2、安装itchat
    3. 3、完整代码
    4. 4、代码简要说明
    5. 5、最终输出结果

使用Python获取微信好友信息并保存

今天清理桌面的时候,发现了2年前用python获取的微信好友信息列表,时间过去了2年,我的微信好友到底有新增了多少好友呢?出于这个目的,于是便有了今天这个主题内容。

今天主要涉及两个Python库:

其实方法很简单,过程如下:

1、编程思路

(1)使用python的itchat库登录微信

(2)获取微信好友信息列表

(3)创建Excel工作簿

(4)循环每一个好友信息的信息,根据“关键字”提取所需信息并保存至Excel中

2、安装itchat

在cmd中执行如下命令,使用pip安装

pip install itchat

3、完整代码

import itchat
from openpyxl import Workbook

# 用手机扫描弹出的二维码登录微信
itchat.login()

# 获取好友列表
friends = itchat.get_friends(update=True)[0:]

# 创建Excel的工作簿并选择默认的sheet页
wb = Workbook()
ws = wb.active

# 写入第一行表头 
ws.append(['UserName', '昵称', '备注', '昵称全拼', '性别', '省份', '城市'])

# 循环每一个好友信息的信息,根据“关键字”提取所需信息并保存至Excel中
for friend in friends:

    UserName = friend['UserName']
    NickName = friend['NickName']
    RemarkName = friend['RemarkName']
    PYQuanPin = friend['PYQuanPin']

    # 1表示男性,2女性
    if friend["Sex"] == 1:
        Sex = '男'
    elif friend["Sex"] == 2:
        Sex = '女'
    else:
        Sex = '未知'

    Province = friend['Province']
    City = friend['City']

    ws.append([UserName, NickName, RemarkName, PYQuanPin, Sex, Province, City])

# 写入完成后保存工作簿    
wb.save('微信好友info-20200319.xlsx')

4、代码简要说明

(1)friends的类型是list(列表),所以可以用列表的循环方法

In [19]: type(friends)
Out[19]: list

(2)每个人的信息类型为itchat.storage.templates.User,可以通过类似字典的方式,使用“键”提取信息,我只提取了几个感兴趣的关键字信息

In [22]: type(friends[0])
Out[22]: itchat.storage.templates.User 
In [23]: print(friends[0])
{'MemberList': <ContactList: []>, 'UserName': '@5a86549c8ef82279bd990206648e1bf1850d38ac77cee275efb3e8df2f1ba4f7', 'City': '', 'DisplayName': '', 'PYQuanPin': '', 'RemarkPYInitial': '', 'Province': '', 'KeyWord': '', 'RemarkName': '', 'PYInitial': '', 'EncryChatRoomId': '', 'Alias': '', 'Signature': '', 'NickName': 'F_numen', 'RemarkPYQuanPin': '', 'HeadImgUrl': '/cgi-bin/mmwebwx-bin/webwxgeticon?seq=304857212&username=@5a86549c8ef82279bd990206648e1bf1850d38ac77cee275efb3e8df2f1ba4f7&skey=@crypt_24517ca6_b0b77c4a4b0c9a4768264e314ebbddc2', 'UniFriend': 0, 'Sex': 1, 'AppAccountFlag': 0, 'VerifyFlag': 0, 'ChatRoomId': 0, 'HideInputBarFlag': 0, 'AttrStatus': 0, 'SnsFlag': 1, 'MemberCount': 0, 'OwnerUin': 0, 'ContactFlag': 0, 'Uin': 2316464134, 'StarFriend': 0, 'Statues': 0, 'WebWxPluginSwitch': 0, 'HeadImgFlag': 1}
In [24]: friends[0]['NickName']
Out[24]: 'F_numen'

(3)ws的类型为openpyxl.worksheet.worksheet.Worksheet,可以使用append方法将列表、元组写入一行单元格

In [25]: type(ws)
Out[25]: openpyxl.worksheet.worksheet.Worksheet

(4)本来想用CSV格式输出的,但是由于昵称中存在特殊的图形字符等,导致输出无法识别,所以最后改用Excel输出。

5、最终输出结果

根据最终输出的表格可以再继续统计很多信息,比如:好友男女比例、好友城市省份分布等。

最终得出结果,在过去的2年里,我的微信好友一共增加了176人,至于男女比例情况嘛。。。上图已经说明了一切。。。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xumeng32@126.com

文章标题:使用Python获取微信好友信息并保存

文章字数:868

本文作者:F_numen

发布时间:2020-03-19, 22:10:03

最后更新:2020-03-19, 23:14:27

原始链接:https://netheroone.cn/archives/eda7b554.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
/*baidu统计*/