Python实现爬取好友头像拼接成大图!这不就暴露了我的好友了!

Python实现爬取好友头像拼接成大图!这不就暴露了我的好友了!,第1张

概述前言笔者无意间发现一个有趣的第三方库itchat,itchat模块是一位叫littlecodersh的大神写的模块,附上大神的github地址,有兴趣的朋友可以去尝试玩一下itchat模块,很有趣的!!!

前言

笔者无意间发现一个有趣的第三方库itchat,itchat模块是一位叫little

codersh的大神写的模块,附上大神的github地址,有兴趣的朋友可以去尝试玩一下itchat模块,很有趣的!!!

https://github.com/littlecodersh/itchat


进群:548377875    即可获取数十套pdf以及大量的学习教程哦!

依赖环境

python3.6

Sublime Text 3

window10


整体流程是: 爬取头像—保存头像—剪切图片—将成果发送到手机传输助手


步骤

1.首先安装itchat,使用pip安装颇为简单

pip install inchat

2.将微信好友头像爬取下来

from numpy import *import itchatimport PIL.Image as Imagefrom os import Listdirdef get_imgs():#完成主要的下载头像的任务 #使用热登录(已经登录的程序,再一次运行程序不需要扫描验证码),执行这一步就会有二维码需要扫描登录 itchat.auto_login(hotReload=True) #获取朋友列表,返回字典类型的数据集,获取好友的索引数 frIEnds = itchat.get_frIEnds(update=True)[0:] #为图片命名的变量 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

代码讲解

导入我们需要用到的itchat模块,定义一个爬取头像的函数get_big_img()

使用itchat.auto_login()完成登录,这是会在文件夹中生成一个itchat.pkl的文件用于登录,下次再登录时不需要扫码了

使用itchat.get_frIEnds()完成朋友列表的信息获取,再循环列表用itchat.get_head_img()获取头像并保存到user文件夹中,这里我们完成就第一步

3.拼接头像

#制作大的大头像def get_big_img(): #获取usr文件夹所有文件的名称 pics = Listdir("use") numPic = len(pics) #创建图片大小 toImage = Image.new("RGB",(800,800)) #用于图片的位置 x = 0 y = 0 #遍历user文件夹的图片 for i in pics: try: #依次打开图片 img = Image.open("use/{}".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 == 17: x = 0 y += 1 #保存图片为bigPhoto.jpg toImage.save("use/" +"bigPhoto.jpg") #将做好图片发送东自己的手机上 itchat.send_image("use/" +"bigPhoto.jpg",'filehelper')#定义执行的主函数def main(): get_imgs() get_big_img()#运行if __name__=="__main__": main()
头像获取下来自然需要拼接,这里我们使用PIL库完成,如果没有安装的可以使用pip完成安装 我们使用Image.new()函数新建一张空白图片,然后把保存在文件夹中的图片,使用img.resize()函数进行剪切成50*50大小,再把50*50的图片粘贴到空白图片上就完成了

4.贴一下源代码

from numpy import *import itchatimport PIL.Image as Imagefrom os import Listdirdef get_imgs():#完成主要的下载头像的任务 #使用热登录(已经登录的程序,再一次运行程序不需要扫描验证码),执行这一步就会有二维码需要扫描登录 itchat.auto_login(hotReload=True) #获取朋友列表,返回字典类型的数据集,获取好友的索引数 frIEnds = itchat.get_frIEnds(update=True)[0:] #为图片命名的变量 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("use") numPic = len(pics) #创建图片大小 toImage = Image.new("RGB",'filehelper')#定义执行的主函数def main(): get_imgs() get_big_img()#运行if __name__=="__main__": main()

在最后我们编写主函数main(),再运行函数即可

事实上itchat能完成的事远远不止于此,做一个微信机器人出来也不是不可能的,在下一期我们再进行讲解

@H_419_81@

总结

以上是内存溢出为你收集整理的Python实现爬取好友头像拼接成大图!这不就暴露了我的好友了!全部内容,希望文章能够帮你解决Python实现爬取好友头像拼接成大图!这不就暴露了我的好友了!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1208513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存