看到一篇有意思的博客 利用微信开放的接口itchat 可以获取登录的微信好友信息 并且利用图像工具显示分析结果 非常的有意思 记录下实现过程 并提供可执行代码

首先要 import itchat 库 这个是微信开源的一个接口 用于登录微信并且查看账户里好友信息服务的

2种导入方法 都可以快速下载库

1.在cmd里可以直接 pip3 install itchat     2.在pycharm中可以依次 File-->Settings-->Project xxx项目-->Project Interpreter --> + --> 搜索里面输入itchat --> install Package

如果还不知道怎么导库 百度搜 肯定可以解决

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一.可以利用itchat获取好友的男女比例,好友的地域分布  上代码

里面需要import 3个包 (itchat,pandas,matplotlib)用上面讲过的相同方法下载库

显示效果为

1 importitchat2

3 #生成一个验证码

4 itchat.login()5 itchat.auto_login(enableCmdQR=True)6 #获取好友信息

7 friends=itchat.get_friends(update=True)8

9 #查看男女的比例

10 male=1

11 female=012 other=013 #friends=[0]是自己 所有我们要从[1:]

14 for i in friends[1:]:15 print(i)16 sex =i['Sex'] #1是男性 2女性

17 if(sex==1):18 male+=1

19 elif(sex==2):20 female+=1

21 else:22 other+=1

23 total =len(friends[1:])24 print('好友总人数:',total)25 print('男性比例:%2f%%'%(float(male)/total*100))26 print('女性比例:%2f%%'%(float(female)/total*100))27 print('未知比例:%2f%%'%(float(other)/total*100))28

29 #绘制图形 --》统计图

30 arr=['1']*male #男性

31 arr1=['2']*female #女性

32 arr2=['0']*other #未知

33

34 #吧数据组合一起 数据可视化

35 arr.extend(arr1)36 arr.extend(arr2)37

38 importmatplotlib.pyplot as plt39 #将数据转化为一维数据

40

41 plt.hist(arr)42 plt.show()43 #获取所有数据

44 #昵称 ,性别,省份 ,城市,个性签名

45 importpandas as pd46

47 data =pd.DataFrame()48 colums =['NickName','Sex','Province','City','Signature']49 for col incolums:50 val =[]51 #得到好友

52 for r in friends[1:]:53 val.append(r[col])54 data[col] =pd.Series(val)55 #城市的分布

56 #绘制柱状型

57 #设置字体

58 plt.rcParams['font.sans-serif']=['SimHei']59 plt.bar(data['Province'].value_counts().index,data['Province'].value_counts())60 plt.xticks(rotation='90') #图片旋转90度

61 plt.show()62 #查看浙江好友分布情况

63 gd= data[data['Province']== '浙江']['City']64 plt.bar(gd.value_counts().index,gd.value_counts())65 plt.show()

二.可以根据获取的好友个性签名 制作词云 比如下图

上代码

由于这个用到的东西多一些 需要导入的包也 多一些 但是没关系 缺少哪个库就对应下载哪个库 下载库的方法都一样

说一下 需要更改的地方

1.第37行 alice_coloring = np.array(Image.open(os.path.join(r'C:\Users\Administrator\Desktop', 'iphone.jpg')))

C:\Users\Administrator\Desktop改为存放图片的路径    iphone.jpg改为你自己图片的名称

2.第62行 my_wordcloud.to_file(os.path.join('F:\\', 'wechat_cloud.png')) 作用是将生成图片放入指定文件夹中 你可以更改放到你想放的路径 改完之后 63行的路径也要改  当然如果偷懒的话 也可以不改 你会发现F盘下 有你生成的文件

1 importitchat2 importre3

4 #先登录,扫二维码登录微信

5 itchat.login()6 #获取好友列表,返回的是json信息

7 friends = itchat.get_friends(update=True)[0:]8 #打印好友列表信息

9 #print(friends)

10 tList =[]11 for i infriends:12 #获取个性签名,替换掉span,class,emoji

13 signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")14 #正则匹配过滤掉emoji表情,例如emoji1f3c3等

15 rep = re.compile("1f\d.+")16 signature = rep.sub("", signature)17 tList.append(signature)18

19 #拼接字符串

20 text = "".join(tList)21

22 #jieba分词

23 importjieba24

25 wordlist_jieba = jieba.cut(text, cut_all=True)26 wl_space_split = " ".join(wordlist_jieba)27

28 #wordcloud词云

29 importmatplotlib.pyplot as plt30 from wordcloud importWordCloud, ImageColorGenerator31 importos32 importnumpy as np33 importPIL.Image as Image34

35 #d = os.path.dirname(__file__)

36 #找一张微信logo图来生成配色方案,微信logo图wechat.jpg路径在F:\\盘下

37 alice_coloring = np.array(Image.open(os.path.join(r'C:\Users\Administrator\Desktop', 'iphone.jpg')))38 #这里要选择字体存放路径,win的字体在C:/windows/Fonts中

39 """#my_wordcloud = WordCloud().generate(wl_space_split) 默认构造函数40 my_wordcloud = WordCloud(41 background_color='white', # 设置背景颜色42 mask = abel_mask, # 设置背景图片43 max_words = 200, # 设置最大显示的字数44 stopwords = STOPWORDS, # 设置停用词45 font_path = C:/Users/Windows/fonts/simkai.ttf', # 设置字体格式,如不设置显示不了中文46 max_font_size = 50, # 设置字体最大值47 random_state = 30, # 设置有多少种随机生成状态,即有多少种配色方案48 scale=.549 ).generate(wl_space_split)"""

50 my_wordcloud = WordCloud(background_color="white", max_words=2000, mask=alice_coloring,51 max_font_size=40, random_state=42,52 font_path='C:/Windows/Fonts/simhei.ttf') \53 .generate(wl_space_split)54

55 image_colors =ImageColorGenerator(alice_coloring)56 plt.imshow(my_wordcloud.recolor(color_func=image_colors))57 plt.imshow(my_wordcloud)58 plt.axis("off")59 plt.show()60

61 #保存图片到F:\\盘下 并发送到手机里的文件传输助手(filehelper)里

62 my_wordcloud.to_file(os.path.join('F:\\', 'wechat_cloud.png'))63 itchat.send_image("F:\\wechat_cloud.png", 'filehelper')

python爬取好友微信地区_python爬取微信信息--显示性别/地域/词云(附代码)相关推荐

  1. python爬取好友微信地区_python爬取微信信息:显示性别/地域/词云

    利用微信开放的接口itchat可以获取登录的微信好友信息,并且利用图像工具显示分析结果.非常的有意思.那就今天跟一点君来看看需要怎么做呢? 首先要 import itchat 库 这个是微信开源的一个 ...

  2. python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...

    def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...

  3. python分析:爬取《灵笼》这部国产动漫弹幕,分析词云!看看网友究竟在说啥?

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 一.前言: <灵笼>这部动漫国漫里面制作算是精良,但是剧情有太多瑕疵. ...

  4. 爬取钉钉在B站卑微道歉视频弹幕,做成词云

    爬取钉钉在B站卑微道歉视频弹幕,做成词云|钉~ 听这美妙的声音 先看用户老爷们给出得评价 B弹幕爬取的方法 打开钉钉下跪视频 B站链接 然后进入控制台如图查看,打开控制台刷新下页面. 你就会在控制台看 ...

  5. Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)

    Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...

  6. 数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化...

    全文下载链接:http://tecdat.cn/?p=28877 作者:Yunfan Zhang Twitter是一家美国社交网络及微博客服务的网站,致力于服务公众对话.迄今为止,Twitter的日活 ...

  7. python自动爬取更新电影网站_Python爬虫之—微信实时爬取电影咨询

    本文将介绍如何使用爬虫在微信对话中实现实时的电影咨询爬取功能,希望和大家一起来分享" 1. 撩妹起源 俗话说的好:少壮不撩妹,长大徒伤悲啊! 说的很对,但是在这个撩妹的时代,要想成功把到妹, ...

  8. python爬取好友qq空间_python + selenium +chrome爬取qq空间好友说说并存入mongodb数据库...

    title: python + selenium +chrome爬取qq空间好友说说并存入mongodb数据库 准备阶段 在正式开始在前需要先准备好做爬虫的工具,本例使用chrome无头浏览器进行爬取 ...

  9. python 数据分析 书籍推荐 知乎_Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书!...

    原标题:Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书! 作者 | Yura 责编 | 胡巍巍 高尔基这话有没有道理我不知道, 咱也不敢问, 主要是现在也问不了. 那对我来说,读 ...

最新文章

  1. 讨论:有多少项目是因为程序的原因而失败的
  2. NIO详解(四):NIO编程
  3. github--新手使用错误分析
  4. server 2008R2 AD域环境中DHCP服务器的授权步骤
  5. 生活随笔:大学需要确立自己的方向
  6. Mac 环境变量配置
  7. Spring Singleton,请求,会话Bean和线程安全
  8. [tensorflow]tensorflow 2.1 函数API(The Functional API)
  9. BZOJ4401: 块的计数 思维题
  10. Java使用ttf字体下载网站
  11. vs2015安装python3.6.8,windows下安装caffe (cuda10.0,anaconda3,python3.6→python2.7,vs2015→vs2013)...
  12. 兼容各个浏览器的H.264播放: H.264+HTML5+FLOWPLAYER+WOWZA+RMTP
  13. 王者荣耀8月6日服务器维护,8月6日体验服停机更新公告
  14. 量子物理 詹班 计算机,6量子物理作业答案.doc
  15. 【Android 应用】小白之签名文件的生成。
  16. [android开发]Animation动画的实现
  17. 纯净版 Win7(非 Ghost 版)的配置
  18. Windows Embedded CE 6.0 and R2 下载地址
  19. 2018 shenyang ICPC E - The Kouga Ninja Scrolls
  20. 如何通过自己的app打开twitter的指定功能

热门文章

  1. 笔记本屏幕变暗/调高亮度闪烁修复方法
  2. Android重写ImageView实现图片镜像效果
  3. 西红柿助手的安装使用及其设置(Visual Assist X)
  4. Fast Affine Template Matching over Galois Field仿射模板匹配数据测试问题
  5. 嵌入式学习项目实战 --- 在线词典
  6. 你今天真好看中文扫描版
  7. Linux:VNC桌面锁屏问题处理
  8. 为什么面试时面试官要问你有没有车贷,房贷和负债?
  9. TJA1044---具有待机模式的高速CAN收发器
  10. 变分图自动编码器教程