使用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重试装饰器示例
Feb 11 Python
python通过scapy获取局域网所有主机mac地址示例
May 04 Python
实例讲解python函数式编程
Jun 09 Python
Python异常处理总结
Aug 15 Python
基于Python的接口测试框架实例
Nov 04 Python
python实现冒泡排序算法的两种方法
Mar 10 Python
在cmder下安装ipython以及环境的搭建
Oct 19 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
python如何求100以内的素数
May 27 Python
Python 日期与时间转换的方法
Aug 01 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
php 数据结构之链表队列
2017/10/17 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
2010年最佳jQuery插件整理
2010/12/06 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python 读入多行数据的实例
2018/04/19 Python
python3.7.0的安装步骤
2018/08/27 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
关于赌博的检讨书
2014/01/08 职场文书
学校岗位设置方案
2014/01/16 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL