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

2023-09-17 10:21

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

头像集样例如下:

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

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

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)


# www.ikosingapore.com_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 = www.ikosingapore.com('RGB', (eachsize*numrow, eachsize*numcol)) # 先生成头像集模板


x = 0  # 小头像拼接时的左上角横坐标
y = 0  # 小头像拼接时的左上角纵坐标


for i in pics:
  try:
    #打开图片
    img = www.ikosingapore.com(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


www.ikosingapore.com(user + ".jpg")

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

运行结果:

ok!!!

以上这篇使用python itchat包爬取微信好友头像形成矩形头像集的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持来客网。

相关文章

vs2010中三角函数_系列概述 - A

2023-10-05 18:25
1.下载gsl1. 从http://gnuwin32.sourceforge.net/packages/gsl.htm 下载完整包,除了sources 和Sources 两个exe 文件。 (注:我从...

PHP使用cURL相关函数设置代理并处理

2023-10-05 18:12
设置代理:如果需要通过代理服务器访问目标URL,可以使用以下cURL相关函数来设置代理:curl_setopt($ch, CURLOPT_PROXY, 'proxy.example.com:8080'...

Python核心编程1

2023-10-05 18:12
Python是一种动态语言1。动态语言的定义动态编程语言是高级编程语言的一类,已广泛应用于计算机科学领域。它是一种结构可以在运行时更改的语言:例如,可以引入新函数、对象甚至代码,可以删除现有函数,或者...

Python多线程和锁

2023-10-05 18:12
多线程类似于同时执行多个不同的程序。多线程具有以下优点:(1)使用线程可以将长期的程序任务放到后台处理。(2)用户界面可以更加美观,这样如果用户点击按钮触发某些事件的处理,可以弹出进度条来显示处理的进...

合友网络安全:保护您的数字生活(合友网络

2023-10-05 17:54
如今,互联网已经成为不可或缺的一部分,一切形式的生活和工作都与互联网有关。然而,随着互联网的广泛使用和数字生活方式的普及,网络安全问题日益严重。大量私人信息被网络黑客窃取,甚至个人和国家安全受到威胁。...

Redis漏洞危害及防范(什么是redi

2023-10-05 17:51
Redis漏洞:危害及防范Redis 是一个高性能的键值存储系统。由于其速度快、部署简单、使用方便等优点,已广泛应用于各种业务场景。然而Redis本身也存在很多漏洞。最致命的漏洞称为“未经授权的访问”...

如何查看Redis中的连接数(redis

2023-10-05 17:51
Redis是一个开源的NoSQL数据库,因其高性能、扩展性强等优势,在互联网领域得到广泛应用。在Redis中,连接数是一个非常重要的指标,它直接影响Redis的性能和稳定性。那么,如何查看Redis的...

Linux输入法安装指南(如何安装lin

2023-10-05 17:51
Linux系统中输入法的安装非常简单,即使是新手也可以完成安装,无需太麻烦。我们来看看Linux输入法安装指南。1。安装Linux必要的环境文件开始安装输入法之前,需要安装Linux平台必需的环境文件...

windows7原版iso镜像下载_wi

2023-10-05 17:37
哪里下载windows7原版iso镜像文件稳定?很多用户在选择系统的时候,都希望可以安装正版系统。因为正版系统永久激活,可以长期使用。那么今天系统城小编就和大家分享windows7原版镜像文件下载地址...

win7官方原版镜像下载地址|免费下载w

2023-10-05 17:37
win7官方原版镜操作界面深受用户喜爱,凡是有给电脑安装过win7官方原版镜像系统的用户都说很好用。集成最全面的硬件驱动,精心挑选的系统维护工具。既然小伙伴这么喜欢win7官方原版镜像系统,今天就让小...

win7中文正式版下载 win7官网原版

2023-10-05 17:37
微软作为一个国外的电脑公司,推出的原版软件大部分都是英文版的,所以对于部分中国用户来说不太习惯使用,有很多的小伙伴想要寻找Windows7官网中文原版镜像文件下载却总是找不到或者依然时英文版的,所以今...

3G网络加密被破解,通信安全存在隐患

2023-10-05 17:13
据外媒报道,去年底在柏林举行的《通信安全峰会》会议上,安全专家Carsten Noll表示,他已经成功编译了一个可用于破解GSM安全密钥的代码工具并初步演示了攻击行为。事情远未结束据外媒报道,去年底在...

华为Mate60诞生了!任正非谈芯片研发

2023-10-05 16:18
9月7日消息,随着Mate 60的推出,任正非此前关于华为芯片的言论研究和开发也再次被曝光。现在回想起来,继续这样做确实需要很大的勇气和魄力。在任正非看来,想要研发芯片,光投入钱是不行的。你还需要投资...

女孩被两个闺蜜PUA骗了8年,百万网友提

2023-10-05 16:18
5月18日,一条消息写道“一个女孩被男友骗了几百万”两个8年好友通过PUA话题“”成为各大平台热搜话题,引起网友强烈关注。据报道,今年3月26日,上海浦东公安分局六灶派出所接到一名年轻女子的电话,称被...

AI服务器需求增加带动第二季度全球DRA

2023-10-05 15:58
【】据外媒8月25日报道,OpenAI训练的人工智能聊天机器人ChatGPT年初爆红随着谷歌、360等厂商加速大规模语言模型和生成式人工智能聊天机器人的开发后,预计GPU、高带宽存储器等半导体将迎来新...