【功能】
抓取微信好友名单 (python 3.7版本下调试成功)
【特点】
1、运行后,会在桌面显示一个二维码,用手机微信扫一扫即可
2、性别从012替换为中文的男、女、其他
3、签名中的表情或者换行,已经过滤掉
4、输出结果各列之间,带有逗号分割,可以利用excel的文本导入功能导入excel中
5、2020年2月19新增一段完整代码,增加了直接保存到excel功能。

【以下为代码,右上角有复制按钮,可一键复制】
#抓取微信好友列表 Ver:20200218.01
import itchat #导入itchat库
itchat.login() #登录(每次登录都要扫二维码)
friends = itchat.get_friends(update=True)[0:] #爬取自己好友相关信息, 返回一个json文件
n=0 #用于后面的好友人数计数
for i in friends[1:]: # 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算 [1:]表示从第2个到最后
NickName = i["NickName"] #网名
RemarkName= i["RemarkName"]#昵称
Province = i["Province"] #省份
City = i["City"] #城市
# 性别 1是男 2是女 需要转换为字符型后再替换
sex = str(i["Sex"]).replace("1", "男").replace("2", "女").replace("0", "其他")
#签名 签名会有很多表情或者换行,需要过滤掉
Signature = i["Signature"].replace("<span", "").replace("class", "").replace("</span>", "").replace("emoji", "").replace(" ","").replace("\n", "").replace(",", ",")
n=n+1 #好友人数计数
#打印输出显示,每列之间加逗号,可以利用excel的文本导入功能导入excel中
print("第",n,"位好友:,",NickName,',',RemarkName,',',sex,',',Province,',',City,',',Signature)
=============================================
2020.2.19日,新增将结果保存到excel功能,完整代码如下:
=============================================
【以下为代码,右上角有复制按钮,可一键复制】
#抓取微信好友列表 Ver:20200219.02
import itchat # 导入itchat模块库,是管理微信专用
import pandas as pd # 导入pandas模块库,是读写EXCEL专用,安装时需要同时安装xlrd、xlwt、openpyxl这三个模块库
itchat.login() #登录(每次登录都要扫二维码)
friends = itchat.get_friends(update=True)[0:] #爬取自己好友相关信息, 返回一个json文件
n=0 #用于后面的好友人数计数
datalist=[] #准备列表,准备用来存储微信好友数据。 必须要提前定义,否则后面会出错
for i in friends[1:]: # 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算 [1:]表示从第2个到最后
NickName = i["NickName"] #网名
RemarkName= i["RemarkName"]#昵称
Province = i["Province"] #省份
City = i["City"] #城市
# 性别 1是男 2是女 需要转换为字符型后再替换
sex = str(i["Sex"]).replace("1", "男").replace("2", "女").replace("0", "其他")
#签名 签名会有很多表情或者换行,需要过滤掉
Signature = i["Signature"].replace("<span","").replace("class","").replace("</span>","").replace("emoji","").replace(" ","").replace("\n","").replace(",",",")
n=n+1 #好友人数计数
#打印输出显示,每列之间加逗号,可以利用excel的文本导入功能导入excel中
print("第",n,"位好友:,",NickName,',',RemarkName,',',sex,',',Province,',',City,',',Signature)
# 生成微信好友信息列表,以备后面写入EXCEL文件中。
# 注意:此处各列内容的个数,要与后面各列名称的个数相同
datalist=datalist+[[str(n),NickName,RemarkName,sex,Province,City,Signature]]
# list转dataframe 。此处实际就是EXCEL中各列的标题,个数要与上面列的个数相对应
df = pd.DataFrame(datalist, columns=['顺序号','网名','昵称','性别','省份','城市','签名'])
# 保存到本地excel
df.to_excel("C://微信好友列表.xlsx", index=False)
print('微信好友列表已经采集完成并保存到文件【微信好友列表.xlsx】,程序结束')
网友评论