使用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的Tornado框架异步编程入门实例
Apr 24 Python
python机器学习之决策树分类详解
Dec 20 Python
python ddt实现数据驱动
Mar 14 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
Python函数中不定长参数的写法
Feb 13 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
python 标准差计算的实现(std)
Jul 29 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
python实现磁盘日志清理的示例
Nov 05 Python
jupyter notebook指定启动目录的方法
Mar 02 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 miniBB中文乱码问题解决方法
2008/11/25 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
python实现自动重启本程序的方法
2015/07/09 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
python requests.post带head和body的实例
2019/01/02 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
全球立体声:World Wide Stereo
2018/09/29 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
商务英语专业求职信范文
2014/01/28 职场文书
班级寄语大全
2014/04/10 职场文书
食品采购员岗位职责
2014/04/14 职场文书
司法助理专业自荐书
2014/06/13 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
先进教师事迹材料
2014/12/16 职场文书
还款承诺书范本
2015/01/20 职场文书
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
JavaScript 数组去重详解
2021/09/15 Javascript