使用python itchat包爬取微信好友头像形成矩形头像集的方法


Posted in Python onFebruary 21, 2019

初学python,我们必须干点有意思的事!从微信下手吧!

头像集样例如下:

使用python itchat包爬取微信好友头像形成矩形头像集的方法

大家可以发朋友圈开启辨认大赛哈哈~

话不多说,直接上代码,注释我写了比较多,大家应该能看懂

import itchat
import os
import PIL.Image as Image
from os import listdir
import math
import sys

print("请输入查询模式:0-显示所有好友头像,但最终矩形头像集最后一行可能残缺;1-头像集为完整矩形,但好友可能不全,即在0模式下舍弃最后一行")
mode = input()
if mode not in ("0","1"):
  print("请按照正确格式输入!")
  sys.exit(0)


# itchat.auto_login(enableCmdQR=True) # 这种登录时控制台生成登录二维码
itchat.login() # 这种登录是生成二维码图片在本地目录

friends = itchat.get_friends(update=True)[0:]  # 核心:得到frieds列表集,内含很多信息

user = friends[0]["UserName"]

w = open(user+"_friends",'a',encoding='utf-8',errors='ignore') # 将friends列表存下来,看看内容
for i in friends:
  w.write(str(i))

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)  # 得到user目录下的所有文件,即各个好友头像

numPic = len(pics)

print("所有好友头像数:"+ str(numPic))

eachsize = int(math.sqrt(float(640 * 640) / numPic))  # 先圈定每个正方形小头像的边长,如果嫌小可以加大

print("小正方形头像边长:"+ str(eachsize))


numrow = int(640 / eachsize)
print("一行小头像数:"+ str(numrow))

if mode == "0":
  numcol = int(math.ceil(numPic * 1.0 / numrow))  # 向上取整
else:
  numcol = int(numPic / numrow)  # 向下取整
  print("舍弃好友数:"+ str(numPic - numrow * numcol))

toImage = Image.new('RGB', (eachsize*numrow, eachsize*numcol)) # 先生成头像集模板


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 == numrow:
      x = 0
      y += 1


toImage.save(user + ".jpg")

# itchat.send_image(user + ".jpg", 'filehelper')  # 自动向文件助手里面添加图片,不需要可以关闭

运行结果:

使用python itchat包爬取微信好友头像形成矩形头像集的方法

ok!!!

以上这篇使用python itchat包爬取微信好友头像形成矩形头像集的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python脚本生成Android SALT扰码的方法
Sep 18 Python
Python logging模块学习笔记
May 24 Python
Python + selenium自动化环境搭建的完整步骤
May 19 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
python3 实现一行输入,空格隔开的示例
Nov 14 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
python实现小世界网络生成
Nov 21 Python
Python基于Socket实现简单聊天室
Feb 17 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
完美解决python针对hdfs上传和下载的问题
Jun 05 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 #Python
用python实现刷点击率的示例代码
Feb 21 #Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 #Python
python根据文章标题内容自动生成摘要的实例
Feb 21 #Python
python3.6实现学生信息管理系统
Feb 21 #Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 #Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 #Python
You might like
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
nodeJs爬虫的技术点总结
2018/05/13 NodeJs
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python构造函数及解构函数介绍
2015/02/26 Python
Python实现针对中文排序的方法
2017/05/09 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
python调用自定义函数的实例操作
2019/06/26 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
Python 使用type来定义类的实现
2019/11/19 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
django ORM之values和annotate使用详解
2020/05/19 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
历史学专业推荐信
2013/11/06 职场文书
高一学生评语大全
2014/04/25 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
女儿满月酒致辞
2015/07/29 职场文书
孙振耀退休感言
2015/08/01 职场文书
python中super()函数的理解与基本使用
2021/08/30 Python
Springboot中如何自动转JSON输出
2022/06/16 Java/Android