使用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中__name__的使用实例
Apr 14 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
使用python实现ANN
Dec 20 Python
python实现word 2007文档转换为pdf文件
Mar 15 Python
Python离线安装PIL 模块的方法
Jan 08 Python
python实现最大优先队列
Aug 29 Python
基于python判断目录或者文件代码实例
Nov 29 Python
python TCP包注入方式
May 05 Python
python 19个值得学习的编程技巧
Aug 15 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
Sep 11 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 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/10/09 PHP
PHP 将图片按创建时间进行分类存储的实现代码
2010/01/05 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
jquery text()要注意啦
2009/10/30 Javascript
js Function类型
2011/12/04 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
JavaScript中Object基础内部方法图
2018/02/05 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
python 字符串格式化代码
2013/03/17 Python
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
python实现分页效果
2017/10/25 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
python实现自动登录后台管理系统
2018/10/18 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
采购意向书范本
2014/03/31 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书