使用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实现的异步代理爬虫及代理池
Mar 17 Python
Python数据结构之单链表详解
Sep 12 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
python smtplib发送带附件邮件小程序
May 22 Python
详解flask入门模板引擎
Jul 18 Python
django Serializer序列化使用方法详解
Oct 16 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
简单了解python的break、continue、pass
Jul 08 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
使用python turtle画高达
Jan 19 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
用缓存实现静态页面的测试
2006/12/06 PHP
php实现jQuery扩展函数
2009/10/30 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
PHP自定义多进制的方法
2016/11/03 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
javascript运动详解
2015/07/06 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
JS异步加载的三种实现方式
2017/03/16 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
Bootstrap Table从零开始
2017/06/30 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
2019/12/22 Javascript
详解Vite的新体验
2021/02/22 Javascript
python利用Guetzli批量压缩图片
2017/03/23 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
农业大学毕业生的个人自我评价
2013/10/11 职场文书
少先队入队活动方案
2014/02/08 职场文书
德能勤绩工作总结
2015/08/11 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书