Python 的itchat 的微信文件传输助手和朋友性别,签名,所在城市分析
itchat 是python的微信类,可以用pip install itchat 安装,也可以用conda insatll itchat安装
开发环境为Windows10+Anaconda3(python3.6)
- 微信网页登陆
import itchat
itchat.login()
用手机微信二维码扫描即可以登陆网页版的微信
2. 微信文件传输助手的运用
import itchat
itchat.login()
itchat.send('Hello,filehelper',toUserName='filehelper')
向文件传输助手发送Hello,filehelper
3.微信好友性别分析
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import itchat
itchat.login()
#爬取自己好友的信息,返回一个json文件
friends = itchat.get_friends(update=True)[0:]#初始化计数器
Male = Female = Unknow = 0
#friends[0]是自己的信息,所以要从friends[1]开始
for i in friends[1:]:sex = i["Sex"]if sex == 1:Male += 1elif sex == 2:Female += 1elseUnknow += 1
#计算朋友总数
total = str(len(friends[1:]))
#print (total,Male,Female,Unknow)
count =('There are '+total+' people in the WeChat circle')#fontproperties
labels = ['Unknow','Male','Female']
#colors = ['red','yellowgreen','lightskyblue']
X = [Unknow,Male,Female]
fig = plt.figure()
#画饼图(数据,数据对应的标签,百分数保留两位小数点)
plt.pie(X,labels=labels,autopct='%1.2f%%')
plt.title("WeChat's circle gender ratio")
plt.xlabel(count)plt.show()
#plt.savefig("PieChart.jpg")
方法二:或者直接用Echarts画出可视化饼图
pyecharts 为python的一个Echarts的API,安装方法为pip install pycharts,或者conda install pycharts
from pyecharts import Pie
import itchat
itchat.login()
#爬取自己好友的信息,返回一个json文件
friends = itchat.get_friends(update=True)[0:]#初始化计数器
Male = Female = Unknow = 0
#friends[0]是自己的信息,所以要从friends[1]开始
for i in friends[1:]:sex = i["Sex"]if sex == 1:Male += 1elif sex == 2:Female += 1else:Unknow += 1
attr = ["男性朋友","女性朋友","未知性别"]
v1 = [Male,Female,Unknow]
pie = Pie("性别比例")
pie.add("",attr,v1,is_label_show=True)
pie.render()
#pie.show_config()
4.爬去所有微信好友的头像
import itchat
import os
import PIL.Image as Image
from os import listdir
import math
import sysitchat.login() # 这种登录是生成二维码图片在本地目录
friends = itchat.get_friends(update=True)[0:] # 核心:得到friends列表集,内含很多信息
user = friends[0]["UserName"]
w = open(user+"_friends",'a',encoding='utf-8',errors='ignore') # 将friends列表存下来,看看内容
for i in friends:w.write(str(i))
print("授权微信用户为:"+user)
os.mkdir(user) # 创建文件夹用于装载所有好友头像
num = 0
for i in friends:img = itchat.get_head_img(userName=i["UserName"])fileImage = open(user + "/" + str(num) + ".jpg",'wb')fileImage.write(img)fileImage.close()num += 1
pics = listdir(user) # 得到user目录下的所有文件,即各个好友头像
numPic = len(pics)
print("所有好友头像数:"+ str(numPic))
eachsize = int(math.sqrt(float(640 * 640) / numPic)) # 先圈定每个正方形小头像的边长,如果嫌小可以加大
print("小正方形头像边长:"+ str(eachsize))
numrow = int(640 / eachsize)
print("一行小头像数:"+ str(numrow))
numcol = int(math.ceil(numPic * 1.0 / numrow)) # 向上取整
toImage = Image.new('RGB', (eachsize*numrow, eachsize*numcol)) # 先生成头像集模板
x = 0 # 小头像拼接时的左上角横坐标
y = 0 # 小头像拼接时的左上角纵坐标
for i in pics:try:#打开图片img = Image.open(user + "/" + i)except IOError:print("Error: 没有找到文件或读取文件失败")else:#缩小图片img = img.resize((eachsize, eachsize), Image.ANTIALIAS)#拼接图片toImage.paste(img, (x * eachsize, y * eachsize))x += 1if x == numrow:x = 0y += 1
toImage.save(user + ".jpg")
itchat.send_image(user + ".jpg", 'filehelper') # 自动向文件助手里面添加图片,不需要可以关闭
得到的图形如下所示
5.微信好友签名分析
import re
import itchat
itchat.login() # 这种登录是生成二维码图片在本地目录
friends = itchat.get_friends(update=True)[0:] # 核心:得到friends列表集,内含很多信息
siglist = []
for i in friends:signature = i['Signature'].strip().replace('span','').replace('emoji','')rep = re.compile("1f\d+\w%|[<>/=]")signature = rep.sub("",signature)siglist.append(signature)text = "".join(siglist)import jieba
worldlist = jieba.cut(text,cut_all = True)
word_space_split = " ".join(worldlist)import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator
import numpy as np
import PIL.Image as Imagecoloring = np.array(Image.open(r'C:\Users\liuzhuang\数据分析\WeChatFriends\101.jpg'))
my_wordcloud = WordCloud(background_color = 'white',max_words = 300,mask=coloring,max_font_size=100,random_state=80,scale=5,font_path="C:\Windows\Fonts\simhei.ttf").generate(word_space_split)
image_colors = ImageColorGenerator(coloring)
plt.imshow(my_wordcloud.recolor(color_func = image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
6.微信好友所在城市分析
自己定义一个dataframe,然后用pandas 读取csv文件,最后用Echarts画图。
import pandas
import itchat
itchat.login()
#爬取自己好友的信息,返回一个json文件
friends = itchat.get_friends(update=True)[0:]
def get_var(var):variable = []for i in friends:value = i[var]variable.append(value)return variable
#调用函数得到各变量,并把数据存到csv文件中,保存到桌面
NickName = get_var("NickName")
Sex = get_var('Sex')
Province = get_var('Province')
City = get_var('City')
Signature = get_var('Signature')
from pandas import DataFrame
data = {'NickName':NickName,'Sex':Sex,'Province':Province,'City':City,'Signature':Signature}
frame = DataFrame(data)
frame.to_csv('friends of data.csv',index=False,encoding="utf_8")
#用pandas 读取文件
friends_of_data = pandas.read_csv('friends of data.csv')
#print (friends_of_data)#用 Echarts 画出条形图
from pyecharts import Bar
Provinces = []
for f in friends:Province = f.ProvinceProvinces.append(Province)a ={}
for i in Provinces:a[i] = Provinces.count(i)
b = sorted(a.items(),key = lambda item:item[1])
attrs = []
values = []
j = 0
while j < len(b):attr = b[j][0]value = b[j][1]attrs.append(attr)values.append(value)j += 1
#开始绘图
bar = Bar("好友所在的城市")
bar.add("城市",attrs,values,is_stack=True,is_datazoon_show=True)
bar.render()
总结
科技的迅速发展使时代面貌日新月异,生活方式的巨变在一定程度上也为人们提供了巨大的便利。但是随着科技的进步,社会也变得越来越复杂,人与人的距离也越来越远。当出现QQ的时候,人们逐渐选择网络社交,远离近距离社交,可是当QQ有一些功能不能够满足人类需求时,出现了微信。微信是一个神奇的存在,日均活跃用户超过10亿,他是一个国民级别的APP,后来微信出现了微信小程序、微信公众号、微信运动等等。可是不知在什么时候,微信朋友圈也变得越来越复杂,当越来越的人选择”仅展示最近三天的朋友圈“,甚至直接屏蔽别人。逐步幻化的好友关系,让微信从熟人社交逐渐过渡到陌生人社交。
朋友圈亦成为人们展示自我,认识他人的全新交际途径。指间在屏幕上滑动,晒生活、晒幸福、晒观点、简单随意之间,便提高了自我的”被关注度“,满足了表达的需求和欲望;同时,点赞与评论之间,更感受了自身的价值,增强了内心的成就感。然而,当虚假的包装横行、晒图变成修图,当分享变成炫耀、当交流变成宣泄,当垃圾信息泛滥、谣言生成、伪科学散步,虚拟的”朋友圈“似乎正走向扭曲,而沉迷于虚拟的”朋友圈“,也让我们在网络的洪流中迷失自我,与生活的本质渐行渐远。
有人选择在朋友圈里记录生活的点点滴滴,有人选择在朋友圈里发各种广告,有人选择在朋友圈里面对某一个观点进行评价等等。归根结底,人们无时无刻不在窥探别人的生活,唯独怕别人过多地了解自己的生活。可是在大数据时代,人的隐私基本上可以忽略。人性中交织着的光明与黑暗,就像一只浑身长满刺的刺猬,离得太远会感觉到寒冷,而靠得太近则害怕被刺猬刺伤。于是微信通讯录的人越来越多,朋友圈也越来越大,可是朋友圈再也无法真正触动你。微信面对10亿用户,无法做到让每一个人满意。与其说是微信让人类变得越来越复杂,不如说是人类让微信变得越来越复杂。希望微信可以拉近人与人之间的距离。
当下,多少心灵在沉迷。饭桌上,沉默寡言,只顾埋头更新朋友圈;秀丽山川之前,无心观赏,匆匆拍照,上传网络......
但愿虚拟社交终只是生活的调味品,愿你我得以感受真实美好的生活。
微信原本是一个好东西,可以让关心和关注你的人知道你的生活动态,大家彼此之间嘘寒问暖,相互慰藉和鼓励,同时也可以学到更多的知识,结识更多的人。可是渐渐的发现不再是这么回事儿了。
若我们能够用一种正确的态度在微信里交流,彼此沟通,相互鼓励、学习,进步、成长,微信的力量也就彰显出她自身的魅力了。
Python 的itchat 的微信文件传输助手和朋友性别,签名,所在城市分析相关推荐
- 微信文件传输助手网页版
链接:微信文件传输助手网页版 打开链接后即可扫码登录,从而无需登录pc端微信实现文件传输.但大文件传输会受限,无法发送超过1g的文件 参考文献:微信文件传输助手上线网页版!
- 自制微信文件传输助手,实现数据安全传输与存储
从日常使用微信文件传输助手来看,传输助手并非点对点传输,所有信息在传输中都将被中转存储在公用服务器上,传输信息的安全性难以得到保障.本文将基于 fiora 开源项目,以目的为导向重写项目,自制文件传输 ...
- 微信文件传输助手文件夹在哪?一起来找找
微信文件传输助手是微信电脑版与手机微信之间相互传输图片等文件的好工具,但很多童鞋都找不到微信文件传输助手文件夹在哪,就让我们一起找找吧 1.先说说手机微信文件传输助手文件夹在哪吧 文件夹路径为/Ten ...
- 如何使用网页版微信文件传输助手(图解教程)
微信文件传输助手网页版是一款非常方便的工具,可以帮助我们在电脑和手机之间传输文件,而且不需要电脑登录微信即可传输文件. 下面是具体的操作步骤: 步骤一:打开多御浏览器,点击微信文件传输助手.然后使用微 ...
- 双电脑双系统Linux与Windows之间的简单文件(图片,视频,压缩包)传输方式——微信文件传输助手网页版
由于近期项目需要,在Ubuntu系统下工作,截图传至Windows下记录,网上搜了一些方法感觉很复杂,多为Windows下与虚拟机中Ubuntu的文件传输,与本人需求不符.经过探索,发现使用微信文件传 ...
- python -itchat实现把文件传输助手当作linux的shell
import os import itchat # 在python中执行shell命令 # 1.第一种方式:可以判断命令是否执行成功: # 返回值为0,执行成功 # 返回值不为0.执行是失败 # os ...
- 微信文件传输助手文件存储位置问题
记录微信中文件传输助手文件存储位置问题. 参考手机型号:华为Mate10. 文件位于:Android\data\com.tencent.mm\MicroMsg\Download 上述位置是文档的位置, ...
- 别用微信文件传输助手了,这6款在线工具真香
大家好,我是一航! 日常的工作,经常需要做电脑与手机同步.临时的文件共享.保存等:大部分时候,我们都是通过微信来传输,微信虽然方便,但是也存在一些弊端,比如,分享必须是好友.文件大小上限1G.敏感数据 ...
- python第三方库文件传输助手_python实现文件助手中查看微信撤回消息
利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...
最新文章
- R语言使用igraph包进行网络(network)可视化实战
- 02.Apollo配置中心整合spring cloud zuul
- UVA11825 Hackers' Crackdown
- python自动化框架pytest pdf_Python 自动化测试框架 unittest 和 pytest 对比
- Project Euler Problem 27 Quadratic primes
- 新版淘宝宽屏轮播代码带缩略图
- 一字之差——手机中的“拼”音输入法和“注”音输入法
- win7 win8 64位系统上装CAD2008挂燕秀外挂的办法
- vmware 14 pro许可证
- 被问到最多的淘口令API调用方法
- iOS webp图片展示处理
- win7台式计算机型号怎么查,教您电脑主板型号怎么看
- deflate php,我可以告诉mod_deflate和PHP只跳过一个目录上的压缩吗?
- C++编程入门系列之目录和总结
- 开发中的各种时间格式转换(三)
- 看到网友晒了新抱枕,我也想换个新的了
- Java系统环境变量配置
- 计算机英语versatile意思,英语单词versatile是什么意思,英文单词查询versatile,在线单词versatile翻译...
- [算法学习no7]图的遍历
- 计算机专业用什么轴的键盘,平常爱打游戏,机械键盘应该买什么轴?
热门文章
- sts3 spring-tool-suite-3.9.10.RELEASE-e4.13.0-win32-x86_64 百度网盘下载 + sts4百度网盘下载链接
- fromCharCode()和charCodeAt()
- 逸新机器人_常德工业机器人电控柜日业SUNYE变频器的参数?
- 设置字体font-family --项目开发记录(六)
- C++基础 - IO对象(流对象)状态,置位与复位
- datarow插入到指定的行
- 【Linux】DHCP、FTP、DNS、WEB服务器的配置过程
- LuckySheet设置单元格格式为千分符保存至后台再获取时格式失效
- PHP按字符串长度分割成数组代码(中英文混杂字符进行分割)
- 西门子变频器SINAMICS G120系列控制单元的STO功能设置方法