python之爬去微信通信录好友头像
博主最近被学习和生活搞得一团糟,主要是科技英语的作业,想想都,,,网络公众平台就不说那些你懂的的那些话,一个学通信的作业+考试要求和翻译硕士一样对待,,,哎,只怪自己怪不得别人当初我是有机会选其他课的,但是当时和前任吵架一时赌气选了大家都说不能选的这个科技英语,,,只能打碎牙往肚子里咽,说明任何时候都不能意气用事,年轻人火气不能太大啊,,,好好爱自己好好孝顺家人才是正道。科技英语作业搞得烦的就看到同学搞了这么个,所以就借鉴来玩玩,比较python这么好玩,,,不废话啦进入正题。
准备工作
博主此次是在sublime环境下+命令窗口下进行的。
sublime-Text3下载安装
sublime-Text3之python环境变量的配置
使用:pip install 包名
命令来安装所需要的包
1:代码
# coding=utf-8
"""
@author: jiajiknag
程序功能: 利用python爬去微信头像
"""
# 导包
from numpy import *
# itchat包爬去微信好友的头像,然后拼接成一个大的头像
import itchat
import PIL.Image as Image
#os.listdir()列出()的目录和文件
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_image文件夹用于存放头像,并写入对应的图片名,空白的
fileImage = open("./user_image/" +str(num) +".jpg",'wb')
# 将获取的微信头像文件写到创建的图片文件中
fileImage.write(img)
# 关闭资源
fileImage.close()
num += 1
def get_big_img():
"""制作大头像"""
# 获取放获取头像文件夹的名字
pics = listdir("user_image")
numPic = len(pics)
# 设置图片的大小
toTmage = Image.new("RGB",(800,800))
# 图片的位置
x = 0
y = 0
# 遍历user_image文件夹的图片(遍历文件夹中图片的名字)
for i in pics:
try:
# 依次打开图片
img = Image.open("user_image/{}".format(i))
except IOError:
print("没有找到文件夹或者读取文件失败",i)
else:
# 重新设置图片的大小
img = img.resize((45,45),Image.ANTIALIAS)
# 将图片粘贴到最后的大图片上,需要注意对对应的位置
toTmage.paste(img,(x*50,y*50))
# 设置每一行排10个头像
x += 1
if x==16:
x=0
y+=1
# 保存图片为bigPhoto.jpg
toTmage.save("user_image/"+"bigPhoto.jpg")
# 将做好的图片发送到自己的手机上
itchat.send_image("user_image/"+"bigPhoto.jpg",'filehelper')
def main():
# 定义执行主函数
get_imgs()
get_big_img()
# 执行
if __name__=="__main__":
main()
说明
图下说明了代码中用于存放获得头像文件的存储路径
2:运行结果
到存储图片的文件夹中查看结果。