您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何使用python itchat包爬取微信好友頭像形成矩形頭像集,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。
初學python,我們必須干點有意思的事!從微信下手吧!
頭像集樣例如下:
大家可以發朋友圈開啟辨認大賽哈哈~
話不多說,直接上代碼,注釋我寫了比較多,大家應該能看懂
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') # 自動向文件助手里面添加圖片,不需要可以關閉
運行結果:
ok!!!
關于“如何使用python itchat包爬取微信好友頭像形成矩形頭像集”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。