文中所有文字、圖片以及相關(guān)外鏈中直接或間接、明示或暗示涉及性別、顏值分?jǐn)?shù)等信息全部由相關(guān)人臉檢測(cè)接口給出。無(wú)任何客觀性,僅供參考。

1 數(shù)據(jù)源

知乎 話題『美女』下所有問(wèn)題中回答所出現(xiàn)的圖片

2 抓取工具

Python 3,并使用第三方庫(kù) Requests、lxml、AipFace,代碼共 100 + 行

3 必要環(huán)境

Mac / Linux / Windows (Linux 沒(méi)測(cè)過(guò),理論上可以。Windows 之前較多反應(yīng)出現(xiàn)異常,后查是 windows 對(duì)本地文件名中的字符做了限制,已使用正則過(guò)濾),無(wú)需登錄知乎(即無(wú)需提供知乎帳號(hào)密碼),人臉檢測(cè)服務(wù)需要一個(gè)百度云帳號(hào)(即百度網(wǎng)盤 / 貼吧帳號(hào))

4 人臉檢測(cè)庫(kù)

AipFace,由百度云 AI 開(kāi)放平臺(tái)提供,是一個(gè)可以進(jìn)行人臉檢測(cè)的 Python SDK。可以直接通過(guò) HTTP 訪問(wèn),免費(fèi)使用

5 檢測(cè)過(guò)濾條件

  • 過(guò)濾所有未出現(xiàn)人臉圖片(比如風(fēng)景圖、未露臉身材照等)

  • 過(guò)濾所有非女性(在抓取中,發(fā)現(xiàn)知乎男性圖片基本是明星,故不考慮;存在 AipFace 性別識(shí)別不準(zhǔn)的情況)

  • 過(guò)濾所有非真實(shí)人物,比如動(dòng)漫人物 (AipFace Human 置信度小于 0.6)

  • 過(guò)濾所有顏值評(píng)分較低圖片(AipFace beauty 屬性小于 45,為了節(jié)省存儲(chǔ)空間;再次聲明,AipFace 評(píng)分無(wú)任何客觀性)

6 實(shí)現(xiàn)邏輯

  • 通過(guò) Requests 發(fā)起 HTTP 請(qǐng)求,獲取『美女』下的部分討論列表

  • 通過(guò) lxml 解析抓取到的每個(gè)討論中 HTML,獲取其中所有的 img 標(biāo)簽相應(yīng)的 src 屬性

  • 通過(guò) Requests 發(fā)起 HTTP 請(qǐng)求,下載 src 屬性指向圖片(不考慮動(dòng)圖)

  • 通過(guò) AipFace 請(qǐng)求對(duì)圖片進(jìn)行人臉檢測(cè)

  • 判斷是否檢測(cè)到人臉,并使用 『4 檢測(cè)過(guò)濾條件』過(guò)濾

  • 將過(guò)濾后的圖片持久化到本地文件系統(tǒng),文件名為 顏值 + 作者 + 問(wèn)題名 + 序號(hào)

  • 返回第一步,繼續(xù)

7 抓取結(jié)果

直接存放在文件夾中(angelababy 實(shí)力出境)。另外說(shuō)句,目前抓下來(lái)的圖片,除 baby 外,88 分是最高分。個(gè)人對(duì)其中的排序表示反對(duì),老婆竟然不是最高分。學(xué)習(xí)過(guò)程中有不懂的可以加入我們的學(xué)習(xí)交流秋秋圈784中間758后面214,與你分享Python企業(yè)當(dāng)下人才需求及怎么從零基礎(chǔ)學(xué)習(xí)Python,和學(xué)習(xí)什么內(nèi)容。相關(guān)學(xué)習(xí)視頻資料、開(kāi)發(fā)工具都有分享

Python自動(dòng)化圖片爬取、顏值評(píng)分,挖掘知乎熱門美女_第1張圖片

Python自動(dòng)化圖片爬取、顏值評(píng)分,挖掘知乎熱門美女_第2張圖片

Python自動(dòng)化圖片爬取、顏值評(píng)分,挖掘知乎熱門美女_第3張圖片

Python自動(dòng)化圖片爬取、顏值評(píng)分,挖掘知乎熱門美女_第4張圖片
如果你依然在編程的世界里迷茫,可以加入我們的Python學(xué)習(xí)扣qun:784758214,看看前輩們是如何學(xué)習(xí)的。交流經(jīng)驗(yàn)。從基礎(chǔ)的python腳本到web開(kāi)發(fā)、爬蟲(chóng)、django、數(shù)據(jù)挖掘等,零基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)的資料都有整理。送給每一位python的小伙伴!分享一些學(xué)習(xí)的方法和需要注意的小細(xì)節(jié),點(diǎn)擊加入我們的 python學(xué)習(xí)者聚集地
8 代碼

本文代碼長(zhǎng)達(dá)百行已將源代碼進(jìn)行保存,源碼以及教程打包好了!趕緊來(lái)學(xué)吧!