基本python实现的爬去微信好友头像,并拼接成大图

CSDN博客:皮乾东
知乎:Htrying
微博:Htring的微博
微信公众号:天然语言处理爱好者(ID:NLP_lover)python

基本python实现的爬去微信好友头像,并拼接成大图

前言

以前写过使用itchat作一个简单的微信聊天机器人,感受仍是挺好玩的,最近看到网上一些关于爬去微信好友头像的一些程序,今天就特意就去实验了一番,感受仍是挺好玩的。web

01.环境准备

本程序的环境是:win10;python3.6;以及numpy、itchat包、PIL包;
numpy的安装这里就再也不介绍(传送门);这里须要介绍的是,itchat安装:在dos窗口 :pip install itchat;
对于PIL这个麻烦一些,须要在pythonlib中下载对应的文件pillow(PIL已经再也不维护,这是升级版),而后再下载存放的文件夹下安装:如图
这里写图片描述微信

02.代码详解

#导入对应的包
from numpy import *
import itchat
import PIL.Image as Image
from os import listdir

def get_imgs():#完成主要的下载头像的任务
    #使用热登陆(已经登陆的程序,再一次运行程序不须要扫描验证码),执行这一步就会有二维码须要扫描登陆
    itchat.auto_login(hotReload=True)
    #获取朋友列表,返回字典类型的数据集,获取好友的索引数
    friends = itchat.get_friends(update=True)[0:256]
    #为图片命名的变量
    num = 0
    #遍历好友列表
    for i in friends:
        #获取好友的头像
        img = itchat.get_head_img(userName=i["UserName"])
        #在项目文件的主建立一个user文件用于放头像,并写入对应的图片名,空白的
        fileImage = open( "./user/" + str(num) + ".jpg",'wb')
        #将获取到的头像文件写到建立的图片文件中
        fileImage.write(img)
        #关闭资源
        fileImage.close()
        num += 1
#制做大的大头像
def get_big_img():
    #获取usr文件夹全部文件的名称
    pics = listdir("user")
    numPic = len(pics)
    #建立图片大小
    toImage = Image.new("RGB", (800, 800))
    #用于图片的位置
    x = 0
    y = 0
    #遍历user文件夹的图片
    for i in pics:
        try:
            #依次打开图片
            img = Image.open("user/{}".format(i))
        except IOError:
            print("Error: 没有找到文件或读取文件失败",i)
        else:
            #从新设置图片的大小
            img = img.resize((50, 50), Image.ANTIALIAS)
            #将图片粘贴到最后的大图片上,须要注意对应的位置
            toImage.paste(img, (x * 50, y * 50))
            #设置每一行排16个图像
            x += 1
            if x == 16:
                x = 0
                y += 1
    #保存图片为bigPhoto.jpg
    toImage.save("user/" +"bigPhoto.jpg")
    #将作好图片发送东本身的手机上
    itchat.send_image("user/" +"bigPhoto.jpg", 'filehelper')
#定义执行的主函数
def main():
    get_imgs()
    get_big_img()
#运行
if __name__=="__main__":
    main()

03.程序运行

这里写图片描述
合成后图片,因为隐私问题,这里把图像后期处理为100*100的了。
这里写图片描述机器学习

04.结果

python是一个充满诱惑的语言,开源的包,让人使用的不想停下来,创新的思惟可以床在出更多美妙的事物。若是你对天然语言处理、机器学习、python开发感兴趣的话,能够关注博主的我的订阅号。
这里写图片描述svg