使用python itchat包爬取微信好友頭像形成矩形頭像集的方法
初學(xué)python,我們必須干點(diǎn)有意思的事!從微信下手吧!
頭像集樣例如下:
大家可以發(fā)朋友圈開啟辨認(rèn)大賽哈哈~
話不多說,直接上代碼,注釋我寫了比較多,大家應(yīng)該能看懂
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列表集,內(nèi)含很多信息 user = friends[0]["UserName"] w = open(user+"_friends",'a',encoding='utf-8',errors='ignore') # 將friends列表存下來,看看內(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目錄下的所有文件,即各個好友頭像 numPic = len(pics) print("所有好友頭像數(shù):"+ str(numPic)) eachsize = int(math.sqrt(float(640 * 640) / numPic)) # 先圈定每個正方形小頭像的邊長,如果嫌小可以加大 print("小正方形頭像邊長:"+ 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 # 小頭像拼接時的左上角橫坐標(biāo) y = 0 # 小頭像拼接時的左上角縱坐標(biāo) 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') # 自動向文件助手里面添加圖片,不需要可以關(guān)閉
運(yùn)行結(jié)果:
ok!??!
以上這篇使用python itchat包爬取微信好友頭像形成矩形頭像集的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python函數(shù)缺省值與引用學(xué)習(xí)筆記分享
有關(guān)一個在函數(shù)參數(shù)設(shè)置缺省值與引用的問題,這個問題是大多數(shù)Pythoner可能會忽視的問題,作個筆記,以備后閱,同時供需要的朋友參考2013-02-02matplotlib 曲線圖 和 折線圖 plt.plot()實(shí)例
這篇文章主要介紹了matplotlib 曲線圖 和 折線圖 plt.plot()實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04利用 Python ElementTree 生成 xml的實(shí)例
這篇文章主要介紹了利用 Python ElementTree 生成 xml的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03利用Python yagmail三行代碼實(shí)現(xiàn)發(fā)送郵件
這篇文章主要給大家介紹了關(guān)于利用Python yagmail三行代碼實(shí)現(xiàn)發(fā)送郵件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05