我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python爬取微信信息--显示性别/地

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python爬取微信信息--显示性别/地

看到一篇有意思的博客 利用微信开放的接口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 import itchat
 2 
 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=0
12 other=0
13 #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 import matplotlib.pyplot as plt
39 #将数据转化为一维数据
40 
41 plt.hist(arr)
42 plt.show()
43 #获取所有数据
44 #昵称 ,性别,省份 ,城市,个性签名
45 import pandas as pd
46 
47 data =pd.DataFrame()
48 colums =['NickName','Sex','Province','City','Signature']
49 for col in colums:
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 import itchat
 2 import re
 3 
 4 # 先登录,扫二维码登录微信
 5 itchat.login()
 6 # 获取好友列表,返回的是json信息
 7 friends = itchat.get_friends(update=True)[0:]
 8 # 打印好友列表信息
 9 # print(friends)
10 tList = []
11 for i in friends:
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 import jieba
24 
25 wordlist_jieba = jieba.cut(text, cut_all=True)
26 wl_space_split = " ".join(wordlist_jieba)
27 
28 # wordcloud词云
29 import matplotlib.pyplot as plt
30 from wordcloud import WordCloud, ImageColorGenerator
31 import os
32 import numpy as np
33 import PIL.Image as Image
34 
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=.5
49                 ).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')

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python爬取微信信息--显示性别/地

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python爬取微信信息--显示性别/地

看到一篇有意思的博客 利用微信开放的接口itchat 可以获取登录的微信好友信息 并且利用图像工具显示分析结果 非常的有意思 记录下实现过程 并提供可执行代码首先要 import itchat 库 这个是微信开源的一个接口 用于登录微信并且
2023-01-30

python 爬取新浪微博信息

新浪微博爬取的话需要设计到登录,这里我没有模拟登录,而是使用cookie进行爬取。获取cookie:代码:#-*-coding:utf8-*-from bs4 import BeautifulSoupimport requestsimpor
2023-01-31

Python如何获取微信好友地区、性别、签名信息并将结果可视化

这篇文章主要讲解了“Python如何获取微信好友地区、性别、签名信息并将结果可视化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何获取微信好友地区、性别、签名信息并将结果可视化
2023-06-20

Python探索之爬取电商售卖信息代码示例

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。 下面有一个示例代码,分享给大家:#! /usr/bin/env python# encodin
2022-06-05

Python抓取手机号归属地信息示例代码

前言 本文给大家介绍的是利用Python抓取手机归属地信息,文中给出了详细的示例代码,相信对大家的理解和学习很有帮助,以下为Python代码,较为简单,供参考。 示例代码# -*- coding:utf-8 -*- import reque
2022-06-04

Python如何通过xpath属性爬取豆瓣热映的电影信息

本篇文章给大家分享的是有关Python如何通过xpath属性爬取豆瓣热映的电影信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言声明一下:本文主要是研究使用,没有别的用途。
2023-06-25

Python爬虫实现网页信息抓取功能示例【URL与正则模块】

本文实例讲述了Python爬虫实现网页信息抓取功能。分享给大家供大家参考,具体如下: 首先实现关于网页解析、读取等操作我们要用到以下几个模块import urllib import urllib2 import re我们可以尝试一下用rea
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录