點贊 ? 評論 ? 收藏 = 三連再看你最帥
目錄
🍏 1、效果預覽
🍎 2、代碼實作
🍑 2.1 獲取粉絲串列
🍒 2.2 下載粉絲頭像
🍍 2.3 千圖成像
🌶 2.4 效果展示
🍍3、問題答疑
🌽 END、每周福利
🍠 抽獎規則:每周 5 程式開獎,雙獎池制
🥜 獎品清單
🍅 資料領取
🍅 聯系作者: 不吃西紅柿
🍅 作者簡介:CSDN 博客專家丨全站 Top 8🏆、HDZ 核心組成員、資訊技術智庫公號號主
🍅 簡歷模板、PPT 模板、學習資料、技識訓助,關注我,都給你
很多人看西紅柿的博客,不知道從何學起,為了廣大人民群眾的根本利益,我寫了一個閱讀指引,按照這個指引進行學習,多加練習,假以時日,勢必能夠……算了
| 學習路徑指引 | 定位 | 適宜人群 |
|---|---|---|
| 全網最全丨 Python 快速入門專欄 | 入門級 | 沒有語言基礎,感興趣的大學生 |
| 全網最黑丨 Python 黑科技專欄 | 黑科技級 | 有一定的基礎,學以致用 |
| 大資料知識體系丨集錦專欄 | 作業/就業 | 大資料領域從業者,就業升職加薪 |
| 資訊技術智庫社區 | 吹水/互助 | 互聯網相關人員,白嫖獎品丨官方活動 |
經過 1 年時間的爆肝,終于 10 萬粉絲了,感謝小伙伴的長期支持,

大恩大德,無以為報,只能肉償,
亦能把粉絲的頭像,拼在一起,組合成愛心, (同樣的,可以把女票頭像拼起來喲,然后高清列印...)
ps.數量太多無法一一展示,此處為抽查的 312 個粉絲頭像,
🍏 1、效果預覽

想知道西紅柿是怎么做到的嗎,接下來,請抓緊方向盤,我要空中轉體 1620 啦!
🍎 2、代碼實作
大致分為 3 個步驟:
-
獲取粉絲串列
-
下載粉絲頭像
-
千圖成像

在 CSDN 中,你可以通過截圖的步驟獲取粉絲串列,
那么對應代碼中,如何提取粉絲頭像呢? 當然是通過介面的方式~
🍑 2.1 獲取粉絲串列
獲取粉絲的介面:url = f"https://blog.csdn.net/community/home-api/v2/get-fans-list?page=1&pageSize=500&id=0&noMore=false&blogUsername={Username}"
def get_fans(Username):
headers = {
"User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)",
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-encoding": "gzip, deflate, br",
"accept-language": "zh-CN,zh;q=0.9",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"cookie": cookie,
}
follow_list = []
# CSDN 加了id = 的校驗碼, 只能獲取一頁
url = f"https://blog.csdn.net/community/home-api/v2/get-fans-list?page=1&pageSize=500&id=0&noMore=false&blogUsername={Username}"
data = {
"page": 1,
"size": 20,
"id": 0,
"noMore": "false",
"blogUsername": Username
}
res = requests.get(url, headers=headers, data=data)
fans = json.loads(res.text)['data']['list']
if fans:
follow_list.extend(fans)
ff = []
for i in follow_list:
ff.append([i['username'], i['userAvatar']]) # 獲取名字 + 頭像
print('獲取粉絲數: ' + str(len(ff)) )
print(ff)
return ff

如圖所示,拿到了粉絲串列,
🍒 2.2 下載粉絲頭像
在上一步中,我拿到了粉絲的頭像的鏈接,接下來,我需要下載頭像到本地,以備后續千圖成像,
def download_avatar(username, url):
# 下載用戶頭像
savePath = './userAvatar' # 頭像存盤目錄
res = requests.get(url)
with open('%s/%s.jpg'%(savePath, username),'wb') as f:
f.write(res.content)
不瞎可以看到,頭像已經成功下載,檔案名就是粉絲 CSDN id,

🍍 2.3 千圖成像
其實上面是個簡單的爬蟲例子,接下來重點來了~
首先,設定心型圖案,
# 設定心形矩陣
FRAME = [[0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0]]
# 定義相關引數
SIZE = 100 # 每張圖片的尺寸,越大越清晰
N = 2 # 每個點位上放置1*1張圖片
-
SIZE 越大,圖片越清晰
-
N 每個點位上放置的圖片數量, 當 N=1,每個點位上放置 1*1 張圖片
# 計算相關引數
width = np.shape(FRAME)[1] * N * SIZE # 照片墻寬度
height = np.shape(FRAME)[0] * N * SIZE # 照片墻高度
n_img = np.sum(FRAME) * (N ** N) # 照片墻需要的照片數
print(n_img)
dir = './userAvatar/' # 頭像存盤目錄,微x搜:資訊技術智庫
filenames = random.sample(os.listdir(dir), n_img) # 隨機選取n_img張照片
filenames = [dir + f for f in filenames]
# 繪制愛心墻
img_bg = Image.new('RGB', (width, height)) # 設定照片墻背景
i = 0
for y in range(np.shape(FRAME)[0]):
for x in range(np.shape(FRAME)[1]):
if FRAME[y][x] == 1: # 如果需要填充
pos_x = x * N * SIZE # 填充起始X坐標位置
pos_y = y * N * SIZE # 填充起始Y坐標位置
for yy in range(N):
for xx in range(N):
img = Image.open(filenames[i])
img = img.resize((SIZE, SIZE), Image.ANTIALIAS)
img_bg.paste(img, (pos_x + xx * SIZE, pos_y + yy * SIZE))
i += 1
# 保存圖片
img_bg.save('love.jpg')
🌶 2.4 效果展示

小伙伴,看到你的頭像了嗎? 把你放在"心"里喲 ~
3、問題答疑
> 剛學python的小伙伴,可能比較吃力,可以加主頁微群,一起交流學習,
🌽 END、每周福利
🍠 抽獎規則:每周 5 程式開獎,雙獎池制
粉絲池 + 獎品池,把每周的參與粉絲和獎品,都放在一個池子,一起來抽,
🥜 獎品清單
至少 8 本正版圖書(本周加5個CSDN 定制日歷和物體書),不定期:CSDN 水杯、背包、日歷...
1、參與方式:
-
三連文章:在本文下三連互動,爬蟲程式即會采集你的名字進入粉絲池,
-
訪問社區:在社區點贊評論或發帖,即可獲取積分,《社區積分榜》前 50 人,自動進入粉絲池, 社區地址: https://bbs.csdn.net/forums/ITID
2、中獎通知: 資訊技術智庫丨 CSDN 社區 、Python 全堆疊技術群
3、補充說明:中獎粉絲微信提供識訓地址和想要的書名,很多人問我該選哪一本,大家可以根據興趣、參考價值來選,西紅柿把官網價也附上了,

| 包郵送書書單:我之前發過的書,也可以選 | 官網地址 | 官網價 |
|---|---|---|
| Python 3.x 基礎教程 | https://item.jd.com/12542555.html | 60 |
| Python 編程完全自學教程 | https://item.jd.com/13130464.html | 99 |
| Python 入門到人工智能實戰 | https://item.jd.com/12648361.html | 79 |
| Python 量化金融編程從入門到精通 | https://item.jd.com/13045490.html | 79 |
| Python 網路編程從入門到精通 | https://item.jd.com/12659295.html | 69 |
| 人工智能數學基礎與 Python 機器學習實戰 | https://item.jd.com/13504186.html | 79 |
🍟 Python 理論基礎:全網最全丨 Python 快速入門專欄
🍇 Python 練習應用:全網最黑丨 Python 黑科技專欄

🍅 資料領取
| 類別 | 資訊技術智庫 |
|---|---|
| 🍅 學習資料 | 8大類 丨20G,含編程語言、演算法、大資料生態圈、資料倉庫、前端等 |
| 🍅 交流加群 | 大佬指點迷津,你的問題往往有人遇到過,求資源在群里喊一聲 |
| 🍅 面試題庫 | 由技術群里的小伙伴們共同投稿,熱乎的大廠面試真題,持續更新中 |
| 🍅 行業資料 | 關注即可領取 PPT 模板、簡歷模板、行業經典書籍 PDF |
| 👇👇👇 領取資料、技識訓助 👇👇👇 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423879.html
標籤:其他
