文中所有文字、圖片以及相關外鏈中直接或間接、明示或暗示涉及性別、顏值分數等信息全部由相關人臉檢測接口給出。無任何客觀性,僅供參考。
1 數據源
知乎 話題『美女』下所有問題中回答所出現的圖片
2 抓取工具
Python 3,并使用第三方庫 Requests、lxml、AipFace,代碼共 100 + 行
3 必要環境
Mac / Linux / Windows (Linux 沒測過,理論上可以。Windows 之前較多反應出現異常,后查是 windows 對本地文件名中的字符做了限制,已使用正則過濾),無需登錄知乎(即無需提供知乎帳號密碼),人臉檢測服務需要一個百度云帳號(即百度網盤 / 貼吧帳號)
4 人臉檢測庫
AipFace,由百度云 AI 開放平臺提供,是一個可以進行人臉檢測的 Python SDK。可以直接通過 HTTP 訪問,免費使用
5 檢測過濾條件
-
過濾所有未出現人臉圖片(比如風景圖、未露臉身材照等)
-
過濾所有非女性(在抓取中,發現知乎男性圖片基本是明星,故不考慮;存在 AipFace 性別識別不準的情況)
-
過濾所有非真實人物,比如動漫人物 (AipFace Human 置信度小于 0.6)
- 過濾所有顏值評分較低圖片(AipFace beauty 屬性小于 45,為了節省存儲空間;再次聲明,AipFace 評分無任何客觀性)
6 實現邏輯
-
通過 Requests 發起 HTTP 請求,獲取『美女』下的部分討論列表
-
通過 lxml 解析抓取到的每個討論中 HTML,獲取其中所有的 img 標簽相應的 src 屬性
-
通過 Requests 發起 HTTP 請求,下載 src 屬性指向圖片(不考慮動圖)
-
通過 AipFace 請求對圖片進行人臉檢測
-
判斷是否檢測到人臉,并使用 『4 檢測過濾條件』過濾
-
將過濾后的圖片持久化到本地文件系統,文件名為 顏值 + 作者 + 問題名 + 序號
- 返回第一步,繼續
7 抓取結果
直接存放在文件夾中(angelababy 實力出境)。另外說句,目前抓下來的圖片,除 baby 外,88 分是最高分。個人對其中的排序表示反對,老婆竟然不是最高分。學習過程中有不懂的可以加入我們的學習交流秋秋圈784中間758后面214,與你分享Python企業當下人才需求及怎么從零基礎學習Python,和學習什么內容。相關學習視頻資料、開發工具都有分享
如果你依然在編程的世界里迷茫,可以加入我們的Python學習扣qun:784758214,看看前輩們是如何學習的。交流經驗。從基礎的python腳本到web開發、爬蟲、django、數據挖掘等,零基礎到項目實戰的資料都有整理。送給每一位python的小伙伴!分享一些學習的方法和需要注意的小細節,點擊加入我們的 python學習者聚集地
8 代碼
本文代碼長達百行已將源代碼進行保存,源碼以及教程打包好了!趕緊來學吧!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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