Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python获取好友地区分布及好友性别分布

Python获取好友地区分布及好友性别分布

作者头像
执行上下文
发布于 2022-07-26 06:31:04
发布于 2022-07-26 06:31:04
73200
代码可运行
举报
文章被收录于专栏:执行上下文执行上下文
运行总次数:0
代码可运行

利用Python + wxpy 可以快速的查询自己好友的地区分布情况,以及好友的性别分布数量。还可以批量下载好友的头像,拼接成大图。

本次教程是基于上次机器人后的,所有依赖模块都可以复用上次的,还不知道的小伙伴可以戳这里。

python + wxpy 机器人

准备工作

  1. 编辑器
  2. 一个注册一年以上的微信号

公共部分代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from wxpy import *  // wxpy 依赖
from PIL import Image   // 二维码登录依赖
import os   // 本地下载依赖
import math
import webbrowser
from pyecharts import Map   //  地图展示依赖
from pyecharts import Pie   //  饼状图依赖

1. 批量下载好友头像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建头像存放文件夹
def avaterPath():
    avaterDir = os.path.join(os.getcwd(), 'wechat')
    if not os.path.exists(avaterDir):
        os.mkdir(avaterDir)
    return avaterDir

# 获取所有的好友头像并保存
def saveWxAvater(avaterDir):
    bot = Bot(cache_path=True)
    allFriends = bot.friends(update=True)
    num = 0
    for friend in allFriends:
        friend.getAvatar(os.path.join(avaterDir,f'{str(num)}.jpg'))
        print("好友昵称:%s"%friend.name)

        num += 1

# 拼接头像
def joinAvatar(path):
    # 获取文件夹内头像个数
    length = len(os.listdir(path))
    # 设置画布大小
    image_size = 2560
    # 设置每个头像大小
    each_size = math.ceil(2560 / math.floor(math.sqrt(length)))
    # 计算所需各行列的头像数量
    x_lines = math.ceil(math.sqrt(length))
    y_lines = math.ceil(math.sqrt(length))
    image = Image.new('RGB', (each_size * x_lines, each_size * y_lines))
    x = 0
    y = 0
    for (root, dirs, files) in os.walk(path):
        for pic_name in files:
            try:
                with Image.open(os.path.join(path, pic_name)) as img:
                    img = img.resize((each_size, each_size))
                    image.paste(img, (x * each_size, y * each_size))
                    x += 1
                    if x == x_lines:
                        x = 0
                        y += 1
            except Exception as e:
                print(F"头像读取失败,错误:{e}")

    img = image.save(os.path.join(os.getcwd(), 'wechat.png'))
    print('wx好友头像拼接完成!')


if __name__ == '__main__':
    avatarDir = avaterPath()
    saveWxAvater(avatarDir)
    joinAvatar(avatarDir)

2. 获取好友性别分布

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bot = Bot(cache_path=True)  # 弹出二维码登录微信,生成bot对象

allFriends = bot.friends()  # 获取所有的微信好友信息

type = ['男同学','女同学','外星人']  # 男//未知性别好友名称

v = [0, 0, 0]  # 初始化对象好友数量

# 遍历所有好友,判断该好友性别
for friend in friends:
    if friend.sex == 1:
        v[0] += 1
    elif friend.sex == 2:
        v[1] += 1
    else:
        v[2] += 1

pie = Pie("好友性别分布")

pie.add("", type, v, is_label_show=True)

pie.render("sex.html")

webbrowser.open('sex.html')
效果

3. 获取好友地区分布情况

代码部分:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bot = Bot(cache_path=True)  # 弹出二维码登录微信,生成bot对象

allFriends = bot.friends()  # 获取所有的微信好友信息

areaDic = {}  # 定义一个空字典,用于存放省市以及省市人数

for friend in allFriends:
    if friend.province not in areaDic:
        areaDic[friend.province] = 1
    else:
        areaDic[friend.province] += 1

keys = area_dic.keys()
v = area_dic.values()

map = Map("好友地域分布", width=1200, height=600)
map.add("好友地域分布" ,keys, v, maptype='china', is_visualmap=True)
map.render("area.html")
webbrowser.open("area.html")
效果
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 执行上下文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一键拼出你的微信好友图片墙!
上午发了张微信近 2000 位好友的头像拼图,让大伙儿看能不能快速找到自己的头像,没想到反响很强烈,引得阵阵惊呼与膜拜,没有料到。
小小詹同学
2019/05/07
1.6K0
一键拼出你的微信好友图片墙!
用python一键生成你的微信好友头像墙
不会写代码?没关系!只要你会使用电脑就 ok! 因为除了用代码方式生成外,还建了一个 .exe 的程序,在电脑点击运行就完事了 下面分别详细的给大家讲解是如何实现的
Python编程与实战
2019/12/03
1.3K0
Python:通过wxpy拼接所有微信好友头像
相信微信大家是用得再多也不过了。那么,对于python+微信,又能玩出什么新的花样呢?下面小编就给大家带来一个好玩的东西。用python下载所有的微信好友的头像,然后拼接成一张大图。这样,大家就可以转载到朋友圈装XY了。哈哈。
Freedom123
2024/03/29
1980
Python:通过wxpy拼接所有微信好友头像
手把手教你微信好友头像形成指定的文字
3、打开你输入的文件名称的输出文件:例如我输入的是RunWsh,那么文字对应头像图片在RunWsh_输出文件里
程序员小藕
2020/07/28
1.2K0
手把手教你微信好友头像形成指定的文字
一键拼出你的微信好友图片墙
上午发了张微信近 2000 位好友的头像拼图,让大伙儿看能不能快速找到自己的头像,没想到反响很强烈,引得阵阵惊呼与膜拜,没有料到。
龙哥
2019/05/13
1.3K0
一键拼出你的微信好友图片墙
Python实现自动回复_python 微信机器人
wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数据统计等功能。
全栈程序员站长
2022/09/28
1.5K0
Python实现自动回复_python 微信机器人
Python爬取所有微信好友头像,制作微信好友图片墙
今天咱就试试怎么爬取微信列表中所有好友的头像,并做成一张图片墙,代码不长,60 行就可以搞定。
秃头哥编程
2019/07/04
7.6K1
python---图解你的好友分布情况
很久之前做了查看微信的好友分布,但是碍于当时的数据可视化有一个巨坑,网上的教程都是互相转发,互相复制的,最后并不能实现操作,这次想要来填坑,所以记录一下。
sjw1998
2019/09/28
6280
python生成微信好友头像图
更新本地pip python -m pip install --upgrade pip C:\Users\allms>python -m pip install --upgrade pip Collecting pip Downloading https://files.pythonhosted.org/packages/f9/fb/863012b13912709c13cf5cfdbfb304fa6c727659d6290438e1a88df9d848/pip-19.1-py2.py3-none-any
暖月寒星
2020/03/12
1.8K0
教你用Python制作微信好友背景墙
前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像。
double
2019/07/31
1.1K0
教你用Python制作微信好友背景墙
Python 获取微信好友地区、性别、签名信息并将结果可视化
本篇博客是itchat库系列的第三篇文章,它主要实现的功能是获取微信好友地区、性别、签名信息并将结果可视化
Python进阶者
2019/05/13
6900
Python 获取微信好友地区、性别、签名信息并将结果可视化
用Python更加了解微信好友
运行平台: Windows Python版本: Python3.6 IDE: Sublime Text
王强
2018/08/09
1.2K0
用Python更加了解微信好友
基于Python的微信好友分析
“如果我比别人看得远,那是因为我站在巨人的肩膀上”–不知道牛顿说了没 本文利用Python3的itchat包简单的分析了一下自己的微信好友。
一点儿也不潇洒
2018/08/07
3.2K0
基于Python的微信好友分析
python wxpy的使用
  本文主要分享一下博主在学习wxpy 的过程中开发的一个小程序。博主在最近有一个监控报警的需求需要完成,然后刚好在学习wxpy 这个东西,因此很巧妙的将工作和学习联系在一起。
一朵灼灼华
2022/08/05
4.7K0
python wxpy的使用
利用Python爬取微信好友昵称和头像
准备工作 1、一个可以登录网页版微信的微信号 2、一个ide编辑器 3、Python环境基于Python3 安装相关依赖 能够登录微信主要依赖于wxpy这个Python库 引入Python os 库 from wxpy import * import os 主要代码 # 创建头像存放文件夹 def create_file_path(): avater_dir = os.path.join(os.getcwd(),'wechat') if not os.path.exists(av
执行上下文
2022/07/26
1.7K0
利用Python爬取微信好友昵称和头像
itchat 保存好友信息以及生成好友头像图片墙
运行这段代码后,就会弹出一个二维码,进行扫描登录,其中 hotReload=True 是保证不用每次运行程序都需要弹出二维码扫描登录。
kbsc13
2019/08/16
9790
利用python看看你的微信好友都是什么样人
通过安装第三方工具包itcaht,我们可以通过二维码登陆微信,然后获得我们的好友信息,如下图所示
行哥玩Python
2020/07/14
8890
利用python看看你的微信好友都是什么样人
itchat统计微信好友信息
好像不够直观,有兴趣的朋友可以加上可视化的展示,我这里用基于python的Echarts 先安装了
周小董
2019/03/25
2.2K0
itchat统计微信好友信息
手把手教你用itchat统计好友信息,了解一下?
初学Python的时候,就写过一篇利用Python的第三方库进行好友头像拼接,itchat itchat库初探--微信好友全头像的拼接,最近又研究了下itchat和matplotlib,目前实现了对微信好友头像、性别、区域、个性签名的采集及展示。
Python攻城狮
2019/03/22
6220
手把手教你用itchat统计好友信息,了解一下?
用python快速分析你的微信好友
itchat基于python开发,封装了大量调取微信功能的接口,使得开发人员可以快速基于这个框架来完成一些微信操作,在这之前我们要做的就是扫码登录,实际上这相当于登录网页版的微信(新注册的账号似乎不支持)。更多介绍在官网和Github上都有详细的文档。   下面介绍基于itchat完成微信数据(好友、群聊等)的分析和展示。
happyJared
2018/09/20
7460
用python快速分析你的微信好友
相关推荐
一键拼出你的微信好友图片墙!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验