使用python itchat包爬取微信好友头像形成矩形头像集的方法

作者:袁杰丶 时间:2021-02-01 17:54:10 

初学python,我们必须干点有意思的事!从微信下手吧!

头像集样例如下:

使用python itchat包爬取微信好友头像形成矩形头像集的方法

大家可以发朋友圈开启辨认大赛哈哈~

话不多说,直接上代码,注释我写了比较多,大家应该能看懂


import itchat
import os
import PIL.Image as Image
from os import listdir
import math
import sys

print("请输入查询模式:0-显示所有好友头像,但最终矩形头像集最后一行可能残缺;1-头像集为完整矩形,但好友可能不全,即在0模式下舍弃最后一行")
mode = input()
if mode not in ("0","1"):
 print("请按照正确格式输入!")
 sys.exit(0)

# itchat.auto_login(enableCmdQR=True) # 这种登录时控制台生成登录二维码
itchat.login() # 这种登录是生成二维码图片在本地目录

friends = itchat.get_friends(update=True)[0:]  # 核心:得到frieds列表集,内含很多信息

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

if mode == "0":
 numcol = int(math.ceil(numPic * 1.0 / numrow))  # 向上取整
else:
 numcol = int(numPic / numrow)  # 向下取整
 print("舍弃好友数:"+ str(numPic - numrow * numcol))

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 += 1
   if x == numrow:
     x = 0
     y += 1

toImage.save(user + ".jpg")

# itchat.send_image(user + ".jpg", 'filehelper')  # 自动向文件助手里面添加图片,不需要可以关闭

运行结果:

使用python itchat包爬取微信好友头像形成矩形头像集的方法

ok!!!

来源:https://blog.csdn.net/Abysscarry/article/details/79148584

标签:python,itchat,头像
0
投稿

猜你喜欢

  • 基于Python中单例模式的几种实现方式及优化详解

    2022-10-24 14:20:45
  • Web2.0电子商务网站的交互设计

    2009-05-15 12:08:00
  • 解决MySQL5.7安装后没有data文件夹无法登录的问题

    2024-01-14 21:39:50
  • python实现二维数组的对角线遍历

    2023-05-15 06:08:01
  • javascript同页面多次调用弹出层具体实例代码

    2024-04-10 14:02:31
  • python palywright库基本使用

    2021-03-30 17:34:42
  • MacBook m1芯片采用miniforge安装python3.9的方法示例

    2022-03-03 21:18:26
  • firefox扩展插件制作方法

    2007-10-12 13:50:00
  • Python采集股票数据并制作可视化柱状图

    2023-01-10 12:34:27
  • Python数据分析之Numpy库的使用详解

    2021-06-14 02:54:53
  • php+mysqli数据库连接的两种方式

    2023-10-08 22:15:16
  • Python编程实现小姐姐跳舞并生成词云视频示例

    2023-10-16 17:38:15
  • 浅谈FastClick 填坑及源码解析

    2024-04-10 16:08:57
  • python使用cv2库、下载opencv库的方法

    2022-09-05 00:45:09
  • Python3 用什么IDE开发工具比较好

    2022-10-03 13:43:07
  • Dreamweaver的CSS布局ul和li范例

    2009-08-28 12:34:00
  • Python延时操作实现方法示例

    2023-08-25 04:04:50
  • Python3+OpenCV实现简单交通标志识别流程分析

    2021-03-12 06:37:41
  • django rest framework 数据的查找、过滤、排序的示例

    2023-07-18 16:33:39
  • Python enumerate函数遍历数据对象组合过程解析

    2023-09-22 02:51:06
  • asp之家 网络编程 m.aspxhome.com