使用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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
Python中实现结构相似的函数调用方法
Mar 10 Python
Python在Console下显示文本进度条的方法
Feb 14 Python
Python实现注册登录系统
Aug 08 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 Python
python实现四人制扑克牌游戏
Apr 22 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
利用Python过滤相似文本的简单方法示例
Feb 03 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
2006/12/14 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
vue微信分享插件使用方法详解
2020/02/18 Javascript
Python中的闭包实例详解
2014/08/29 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
Python生成器(Generator)详解
2015/04/13 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python3音乐播放器简单实现代码
2020/04/20 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
python之拟合的实现
2019/07/19 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
教师年度考核自我鉴定
2014/01/19 职场文书
社区中秋节活动方案
2014/01/29 职场文书
文明班级申报材料
2014/12/24 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
钱学森观后感
2015/06/04 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python