python爬微信头像_itchat+pillow实现微信好友头像爬取和拼接
效果图
使用方法(前提是设备安装了python):
下载本项目到本地,打开项目主目录,打开命令行,输入:
pip install -r requirements.txt
等待安装完成,输入:
python wxImage.py
出现如下二维码(知乎不让粘贴二维码,所以下面的二维码被河蟹了):
aHR0cHM6Ly9sb2dpbi53ZWl4aW4ucXEuY29tL2wvSVpUNVl5Zlk3UT09 (二维码自动识别)
用手机微信右上角的扫一扫,确认登陆即可。
稍等片刻,你打开手机微信,找到信息栏的微信传输助手,会看到如下:
核心
python:itchat(用于爬取头像)
pillow(用于拼接图片)
源码详解
首先登陆python版本微信itchat,生成二维码:
itchat.auto_login(enableCmdQR=True)
获取好友列表:
friends = itchat.get_friends(update=True)[0:]
然后使用itchat的get_head_img(userName=none)函数来爬取好友列表的头像,并下载到本地:
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
计算出每张头像缩小后的尺寸(由于为了拼接之后可以用来作为为微信头像,所以合成的图片大小都是640 640的,因为微信头像大小就是640640)
计算每张头像缩小后的边长(默认为正方形):
eachsize = int(math.sqrt(float(640 * 640) / numPic))
计算合成图片每一边分为多少小边:
numline = int(640 / eachsize)
缩小并拼接图片:
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 == numline:
x = 0
y += 1
保存图片到本地:
toImage.save(user + ".jpg")
在微信的文件传输助手发合成后的图片给使用者:
itchat.send_image(user + ".jpg", 'filehelper')
完整代码(下载本人github项目会更好点):
from numpy import *
import itchat
import urllib
import requests
import os
import PIL.Image as Image
from os import listdir
import math
itchat.auto_login(enableCmdQR=True)
friends = itchat.get_friends(update=True)[0:]
user = friends[0]["UserName"]
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)
numPic = len(pics)
print(numPic)
eachsize = int(math.sqrt(float(640 * 640) / numPic))
print(eachsize)
numline = int(640 / eachsize)
toImage = Image.new('RGBA', (640, 640))
print(numline)
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 == numline:
x = 0
y += 1
toImage.save(user + ".jpg")
itchat.send_image(user + ".jpg", 'filehelper')
python爬微信头像_itchat+pillow实现微信好友头像爬取和拼接相关推荐
- 微信好友头像爬取及自定义拼接(Python itchat+pillow)
Python环境实现(略) ******百度,琳琅满目****** 核心模块 itchat(爬取头像) pillow(拼接头像) 内置模块 os(文件夹操作) math(数学计算) 效果图 1. 合 ...
- python爬虫好友图片_Python爬取所有微信好友头像,制作微信好友图片墙
今天咱就试试怎么爬取微信列表中所有好友的头像,并做成一张图片墙,代码不长,60 行就可以搞定. 核心是利用三个库:wxpy 库,用于获取好友头像然后下载 Pillow 库,用于拼接头像 Pyinsta ...
- python爬微信头像_使用python itchat包爬取微信好友头像形成矩形头像集的方法
初学python,我们必须干点有意思的事!从微信下手吧! 头像集样例如下: 大家可以发朋友圈开启辨认大赛哈哈~ 话不多说,直接上代码,注释我写了比较多,大家应该能看懂 import itchat im ...
- python爬取微信好友头像_使用python itchat包爬取微信好友头像形成矩形头像集的方法...
初学python,我们必须干点有意思的事!从微信下手吧! 头像集样例如下: 大家可以发朋友圈开启辨认大赛哈哈~ 话不多说,直接上代码,注释我写了比较多,大家应该能看懂 import itchat im ...
- 用Python爬取微信好友头像,才知道好友都是这样的人
用Pyhon爬取微信好友头像,才知道好友是这样的人 看你的微信头像,就知道你没见过世面 看你的微信名称,我就猜到了你是个渣男 看你的朋友圈,就能反映出你很好追 选择微信头像的纠结症 现如今,不管是常用 ...
- python爬取微信朋友圈图片_使用python itchat包爬取微信好友头像形成矩形头像集的方法...
初学python,我们必须干点有意思的事!从微信下手吧! 头像集样例如下: 大家可以发朋友圈开启辨认大赛哈哈~ 话不多说,直接上代码,注释我写了比较多,大家应该能看懂 import itchat im ...
- python之爬去微信通信录好友头像
python之爬去微信通信录好友头像 博主最近被学习和生活搞得一团糟,主要是科技英语的作业,想想都,,,网络公众平台就不说那些你懂的的那些话,一个学通信的作业+考试要求和翻译硕士一样对待,,,哎,只怪 ...
- Python爬微信好友头像,性别,所在地区
Python爬微信好友头像,性别,所在地区 本文适合新手(有一定基础的小白) 今天没事,用的网页版微信,于是看源码心理作怪,F12打开,研究了一下,结果发现 /斜眼笑/斜眼笑/斜眼笑 再加上,没事干, ...
- 用python itchat包 爬取微信好友头像形成矩形头像集
原创作品,转载请注明地址哈 ~ ###初学python,我们必须干点有意思的事!从微信下手吧! 头像集样例如下: 大家可以发朋友圈开启辨认大赛哈哈~ 话不多说,直接上代码,注释我写了比较多,大家应该能 ...
最新文章
- DataGrid在分页状态下删除纪录的问题
- php智能客服,智能客服系统
- 最短路径Dijkstra(邻接矩阵)
- 最新CAX/EDA/CFD/GIS/光学/化工/液压软件资源网
- NetScaler的部署实验之二NetScaler的传输环路值的设定
- 构建Hybrid应用-构建ionic开发环境
- linux shell sshpass 远程服务器 批量修改密码
- 【鸿蒙 HarmonyOS】HarmonyOS 开发环境搭建 ( Node.js 安装 )
- 【web安全】第三弹:web攻防平台pentester安装及XSS部分答案解析
- Android开发之实现锁屏功能
- x86从实模式到保护模式实验说明
- html文件整体结构,HTML文件基本结构
- 拓端tecdat:R语言GARCH建模常用软件包比较、拟合标准普尔SP 500指数波动率时间序列和预测可视化
- hdu1385 最短路字典序
- idea提交本地项目到git
- java算法大全_java经典算法_算法面试题大全含答案
- 腾讯敏感词汇大全_腾讯数平精准推荐 | OCR技术之识别篇
- Vue+element+Nodejs学习记录(6)
- vim 删除首尾空格
- JQ input框单多图上传