使用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模块restful使用方法实例
Dec 10 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
Python中return self的用法详解
Jul 27 Python
python实现n个数中选出m个数的方法
Nov 13 Python
神经网络相关之基础概念的讲解
Dec 29 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
在python中画正态分布图像的实例
Jul 08 Python
python实现邮件自动发送
Aug 10 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
如何用Python搭建gRPC服务
Jun 30 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 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
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
javascript History对象原理解析
2020/02/17 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
linux 下实现python多版本安装实践
2014/11/18 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
Python yield 使用浅析
2015/05/28 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
详解python配置虚拟环境
2019/04/08 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
详解Python模块化编程与装饰器
2021/01/16 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
英文简历中的自我评价
2013/10/06 职场文书
《我的信念》教学反思
2014/02/15 职场文书
部队党性分析材料
2014/02/16 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
比较node.js和Deno
2021/04/27 Javascript
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
Redis分布式锁的7种实现
2022/04/01 Redis