今天偶尔在GitHub上面看到分享的使用python模块itchat+pillow获取朋友圈微信头像,感觉蛮有意思。下班折腾了下,技术上不算难实现,idea却很重要。最先想到这个idea的才是真会玩啊。纸上得来终觉浅,好记性不如丑网页,要充分把自己的博客利用起来。
废话少说,先看效果图:
效果还不错吧:)。好友头像个性一目了然,好有喜感。那么如何实现呢?
首先是要有python环境,下载源码 到本地目录。 安装抓图所需模块文件:
1 pip install -r requirements.txt
requirements.txt文件中包含了需要的各个模块及其版本号。
安装itchat模块:
wxImage.py源码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 import itchat import osimport PIL.Image as Image from os import listdirimport mathitchat.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: not find file or file not exist" ) 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' )
运行脚本文件:
出现如下二维码图案,用手机微信右上角的扫一扫,确认登陆即可。
稍候手机文件传输助手会收到效果图片:
接下来可以继续改进的是头像显示不完全问题,还可以对朋友圈用户信息进行进一步的数据挖掘。 感谢分享 。