文中所有文字、圖片以及相關(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學(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é)吧!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
