一、使用到的库

① wxpy:初始化微信机器人

② openpyxl:保存微信好友数据为Excel表格

③ pyecharts:生成可视化的地图

④ wordcloud、matplotlib、jieba:生成词云图

二、开始分析

1、首先登录自己的微信

from wxpy import Bot
#初始化机器人,选择缓存模式(扫码)登录
bot = Bot(cache_path=True)
#获取我的所有微信好友信息
friend_all = bot.friends()

运行登录代码会自动弹出一个二维码页面,打开如下图 1, 用手机扫码同意后,进入微信并获取微信好友的相关信息。

print(friend_all[0].raw)#获取自己的全部信息
print(len(friend_all))#输出自己的微信好友人数

为了获取好友信息中需要的部分,我们对信息需要进行处理。从上面的获取信息全字段来看,我们获取的每位好友的信息都是一个字典,字典里只有’City’、‘Province’、‘Signature’、
‘NickName’、‘HeadImgUrl’、'Sex’是我们需要的。下面我们就对这几个 key 进行提取。

lis=[] #创建一个空列表
for a_friend in friend_all:NickName = a_friend.raw.get('NickName',None)#Sex = a_friend.raw.get('Sex',None)Sex ={1:"男",2:"女",0:"其它"}.get(a_friend.raw.get('Sex',None),None)City = a_friend.raw.get('City',None)Province = a_friend.raw.get('Province',None)Signature = a_friend.raw.get('Signature',None)HeadImgUrl = a_friend.raw.get('HeadImgUrl',None)HeadImgFlag = a_friend.raw.get('HeadImgFlag',None)list_0=[NickName,Sex,City,Province,Signature,HeadImgUrl,HeadImgFlag]lis.append(list_0)

将 lis 列表能够保存到 excel 中:

def lis2e07(filename,lis):infoTitle = ['NickName', 'Sex', 'Province', 'City']wb = openpyxl.Workbook()sheet = wb.activesheet.title = 'list2excel07'for _ in range(len(infoTitle)):sheet.cell(row=1, column=_+1, value=infoTitle[_])file_name = filename +'.xlsx'for i in range(len(lis)):for j in range(len(infoTitle)):sheet.cell(row=i+2, column=j+1, value=str(lis[i][j]))wb.save(file_name)
lis2e07('C:\\Users\\DELL\\Desktop\\yubg2',lis)

运行结果:

对数据进行简单的分析:

Friends = bot.friends()
data = Friends.stats_text(total=True, sex=True,top_provinces=30, top_cities=500)
print(data)

结果:

将好友所在的城市用词云图显示:

import matplotlib.pyplot as plt
plt.ion()
df = read_excel('C:\\Users\\DELL\\Desktop\\yubg2.xlsx',sheet_name='list2excel07')
word_list= df['City'].fillna('0').tolist()#将 dataframe 的列转化为 list,其中的 nan 用“0”替换
new_text = ' '.join(word_list)
wordcloud = WordCloud(font_path='simhei.ttf', background_color="black").generate(new_text)
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

结果如图

生成微信好友在广东省分布的城市图:

def creatcitymap():CityList=[]CityNum = []for i in range(FriNum):if lis[i][4] not in CityList:CityList.append(lis[i][4])CityNum.append(0)for i in range(FriNum):for j in range(len(CityList)):if lis[i][4] == CityList[j]:CityNum[j] += 1for i in range(len(CityList)):CityList[i] += '市'map=Map(width=1000, height=1000)map.add("", CityList, CityNum, maptype="广东", is_visualmap=True, visual_text_color='#000')map.render('C:\\Users\\DELL\\Desktop\\citymap.html')

结果如图:

我的第一个微信好友分析相关推荐

  1. 初出茅庐-----微信好友分析与微信机器人

    初出茅庐-----微信好友分析与微信机器人 一.微信好友分析 1.简介 对微信的好友进行分析,统计好友的人数,省市的分布,并排序,并统计好友签名用词的特点.用pyechart图像显示,并存为网页文件. ...

  2. 真小白|一步步教你用Python抓取微信好友分析

    前言 前段时间公司里有个同事发了张图片在群上,是他所有微信好友头像拼成的一张大图,我看着挺有意思,就想自己也搞一下,然后百度了下怎么抓取微信好友之类的--一搜全是用Python抓取的,之前就听说过Py ...

  3. python 实现微信好友分析

    文章目录 wechat analsys 环境搭建 实现的功能 微信好友信息导出 微信好友性别分析 微信好友城市分布 微信好友地图分布 微信好友个性签名情感分析 微信好友头像照片墙 是否识好友识别 自动 ...

  4. itchat+pyecharts实现微信好友分析及可视化

    python+pyecharts实现微信好友分析及可视化 1. 准备及介绍 2. itchat获取微信好友列表 3. 分词及生成词云 3.1 jieba分词 3.2 生成词云 4. pyecharts ...

  5. python微信好友分析源代码_搞事情了 | 教你用Python分析微信好友信息(内附完整代码)...

    本文经授权转载至公众号 Python 知识圈 未经授权 严禁二次转载 阅读文本大概需要 5 分钟 技术群里一位读者微信私聊我,问我能不能统计下微信好友信息并以文件形式保存.其实,以前也写过类似的文章, ...

  6. 原创|Python wxpy模块的有趣应用,微信机器人,微信好友分析搞定

    ↑↑↑关注后"星标"简说Python 人人都可以简单入门Python.爬虫.数据分析 简说Python推荐 来源:简说Python作者:老表 大家好,我是老表,今天这篇文章是两年半 ...

  7. 数据分析之——微信好友分析

    itchat 中午吃午饭的时候,无意间浏览到某公众号的一篇文章,是关于爬微信好友的.自从爬虫工程师转数据分析师以来,很久没玩过爬虫了,于是乎玩心一起,吃完饭之后自己便尝试起来. itchat 包,已经 ...

  8. python微信好友分析源代码_Python简单分析微信好友

    开发工具 Python版本:3.6.4 相关模块: itchat模块: pandas模块: pyecharts模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 相关文 ...

  9. python微信好友分析_基于python实现微信好友数据分析(简单)

    一.功能介绍 本文主要介绍利用网页端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析,功能包括: 1.爬取好友列表,显示好友昵称.性别和地域和签名, 文件保存为 xlsx 格式 2. ...

最新文章

  1. 解决:vs2013 错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated.
  2. 010_TreeMap键使用Comparator排序
  3. linux bash java,从Linux Bash Shell配置NIC
  4. vue-cli工程目录结构及相关文件说明
  5. 教你学会七种维护服务器安全最佳技巧
  6. Socket网络编程【获取本机IP】
  7. npm的镜像替换淘宝
  8. eslint检测时报错
  9. 深度学习超分辨率最新综述:一文道尽技术分类与效果评测
  10. linux升级了npm怎么还原,linux下升级npm以及node
  11. 基于JAVA+Servlet+JSP+MYSQL的物流管理系统
  12. 关于SQL92标准和Sybase,SQLServer2000,Oracle的数据类型对比关系
  13. 激光雕刻机:废旧光驱的涅槃之路
  14. RFC1738 - 统一资源定位器URL
  15. 各大IT公司技术架构一览
  16. 如何管理一盘散沙的团队?
  17. latex 分行 表格标题过长_使用latex撰写Elsevier论文,遇到的表格标题caption换行以及左对齐问题的解决办法...
  18. ISC技术分享:从RASP开启云上应用安全防护
  19. 斐讯n1盒子装网易音乐命令版
  20. AS3实现经典算法(一) 斐波纳契数列

热门文章

  1. 工业工程专业C语言,工欲善其事必先利其器——工业工程课程设置及其核心专业课简介...
  2. 数学公式编辑器 linux,linux下的公式编辑器
  3. 零基础带你快速入门Ribbon技术(浅显易懂、小白都能看懂)
  4. spring原始注解
  5. Struts2-获取值栈对象与结构
  6. Java实现返回的数据为树形结构
  7. Docker Compose——搭建Redis集群
  8. Telephone Number
  9. 鸿蒙系统8xmax,华为8月9日发布基于安卓10.0全新系统:自主鸿蒙会同台亮相
  10. opc服务器组态文件已写保护_「杰控软件」OPC代理服务,通过OPC方式采集远程OPC服务...