溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用python itchat包爬取微信好友頭像形成矩形頭像集

發(fā)布時(shí)間:2021-04-25 14:11:53 來(lái)源:億速云 閱讀:193 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)如何使用python itchat包爬取微信好友頭像形成矩形頭像集,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

python是什么意思

Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,其最初的設(shè)計(jì)是用于編寫自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。

初學(xué)python,我們必須干點(diǎn)有意思的事!從微信下手吧!

頭像集樣例如下:

大家可以發(fā)朋友圈開啟辨認(rèn)大賽哈哈~

話不多說(shuō),直接上代碼,注釋我寫了比較多,大家應(yīng)該能看懂

import itchat
import os
import PIL.Image as Image
from os import listdir
import math
import sys

print("請(qǐng)輸入查詢模式:0-顯示所有好友頭像,但最終矩形頭像集最后一行可能殘缺;1-頭像集為完整矩形,但好友可能不全,即在0模式下舍棄最后一行")
mode = input()
if mode not in ("0","1"):
  print("請(qǐng)按照正確格式輸入!")
  sys.exit(0)


# itchat.auto_login(enableCmdQR=True) # 這種登錄時(shí)控制臺(tái)生成登錄二維碼
itchat.login() # 這種登錄是生成二維碼圖片在本地目錄

friends = itchat.get_friends(update=True)[0:]  # 核心:得到frieds列表集,內(nèi)含很多信息

user = friends[0]["UserName"]

w = open(user+"_friends",'a',encoding='utf-8',errors='ignore') # 將friends列表存下來(lái),看看內(nèi)容
for i in friends:
  w.write(str(i))

print("授權(quán)微信用戶為:"+user)

os.mkdir(user) # 創(chuàng)建文件夾用于裝載所有好友頭像

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目錄下的所有文件,即各個(gè)好友頭像

numPic = len(pics)

print("所有好友頭像數(shù):"+ str(numPic))

eachsize = int(math.sqrt(float(640 * 640) / numPic))  # 先圈定每個(gè)正方形小頭像的邊長(zhǎng),如果嫌小可以加大

print("小正方形頭像邊長(zhǎng):"+ str(eachsize))


numrow = int(640 / eachsize)
print("一行小頭像數(shù):"+ str(numrow))

if mode == "0":
  numcol = int(math.ceil(numPic * 1.0 / numrow))  # 向上取整
else:
  numcol = int(numPic / numrow)  # 向下取整
  print("舍棄好友數(shù):"+ str(numPic - numrow * numcol))

toImage = Image.new('RGB', (eachsize*numrow, eachsize*numcol)) # 先生成頭像集模板


x = 0  # 小頭像拼接時(shí)的左上角橫坐標(biāo)
y = 0  # 小頭像拼接時(shí)的左上角縱坐標(biāo)


for i in pics:
  try:
    #打開圖片
    img = Image.open(user + "/" + i)
  except IOError:
    print("Error: 沒(méi)有找到文件或讀取文件失敗")
  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')  # 自動(dòng)向文件助手里面添加圖片,不需要可以關(guān)閉

運(yùn)行結(jié)果:

如何使用python itchat包爬取微信好友頭像形成矩形頭像集

ok!??!

關(guān)于“如何使用python itchat包爬取微信好友頭像形成矩形頭像集”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI