卖坚果的怪叔叔 卖坚果的怪叔叔
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
首页 › 技术 › Python获取好友地区分布及好友性别分布

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

坚果大叔
2019-07-09 17:13:54技术阅读 2,796

Python获取好友地区分布及好友性别分布-卖坚果的怪叔叔

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

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

python + wxpy 机器人

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

from wxpy import *  // wxpy 依赖
from PIL import Image   // 二维码登录依赖
import os   // 本地下载依赖
import math
import webbrowser
from pyecharts import Map   //  地图展示依赖
from pyecharts import Pie   //  饼状图依赖

# 创建头像存放文件夹
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)

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')

效果

Python获取好友地区分布及好友性别分布-卖坚果的怪叔叔

代码部分:

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")

效果

Python获取好友地区分布及好友性别分布-卖坚果的怪叔叔

wepython

欢迎小伙伴关注我的微信 【小夭同学】 一起学习前端相关知识。

Python获取好友地区分布及好友性别分布-卖坚果的怪叔叔

微信机器人
赞赏 赞(0)
本文系作者 @坚果大叔 原创发布在 卖坚果的怪叔叔。未经许可,禁止转载。
ES6入门之Symbol
上一篇
Python获取好友地区分布及好友性别分布
下一篇
在小程序中查看

这是个😊,挣点服务器费用😜

热门文章
最近
Web站,前端接入钉钉扫码登录!
重学JavaScript之window对象
清明小假期!
Windows微信多开+防撤回!
专题标签
CSS (15) dom (1) Es6入门系列 (14) Git (3) html (1) iview (1) JavaScript (9) js (4) Lif (1) Node (4) pyecharts (1) Python (10) ref (1) scriptable (1) Skill (1) vsCode (1) vue (4) wordpress (2) 三月 (1) 上海 (1) 其他分享 (3) 前端两三问 (15) 古镇 (1) 外滩 (1) 对象 (1) 小程序 (5) 年度总结 (6) 年终总结 (1) 微信机器人 (4) 微信相关技巧 (1) 打字机 (1) 技术 (1) 日常问题 (8) 日常问题记录 (1) 春天 (2) 服务器 (2) 油菜花 (1) 海族馆 (1) 生活 (8) 网上国网 (1) 记录 (3) 通勤 (1) 重学JavaScript (11) 面试题 (10) 🌸 (1)
什么是 Skill?
2026-08-12 21:32:42
156 1 0
失业在家,我给小朋友做了一个练字小程序!
2026-08-07 16:21:52
386 8 1
上线8年,15万用户的小程序,一共赚了多少钱?
2026-05-30 18:01:24
4,557 4 0
WordPress评论留言通知推送插件!
2025-12-13 17:22:36
3,664 3
  • 0
博主

一位佛系的前端开发者,略通摄影,乐于尝试新事物,热衷于美食。

友链
故事胶片
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔 Dacking
Copyright © 2017-2026 卖坚果的怪叔叔

开往-友链接力

萌ICP备20230818号

苏ICP备18048410号-3
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
# CSS # # JavaScript # # vue # # 微信 # # 生活 #
坚果大叔
344
文章
170
评论
430
喜欢