1. 程式人生 > 實用技巧 >全球最美Top100女神出爐,國內六人上榜,用Python發現了這些祕密...

全球最美Top100女神出爐,國內六人上榜,用Python發現了這些祕密...

最近一段時間,國外媒體TOP BEAUTY WORLD選取了全球最帥男性和最美女性前100名,肖戰成為了該排行榜歷屆以來首位登頂的亞洲人。這一訊息立刻成為了流量的熱點。

小編特地去查了一下,想看一下榜單中的最美小姐姐的資訊。可是現在還沒有最美小姐姐的文字榜單資訊。但是小編卻查到了2019年年底釋出的上一屆的全球最美女性前一百名的詳細榜單,包含了姓名、國籍和職業等資訊。

有這麼詳盡的榜單,我們怎麼能不拿來好好的探究一波?小編馬上爬取了資料,並進行了資料的視覺化分析,一起來看看吧。

評價指標

對於排行榜的評比,不單單是對於美貌的評選。榜單是根據下面公式進行打分。

總分=0.3粉絲投票+0.5官方針對入圍明星的五官比例給出的分數+0.2*(個性、身材、慈善工作等)

可以看到,打分成績中,綜合的考慮了許多方面的因素,能從選手的全方位進行綜合的分析和打分評比。明白了打分的評價指標後,我們接下來就看一下如何獲取該份榜單的資料吧。

女神資料獲取


首先,我們要獲取到想要的資料,包括小姐姐的照片,姓名以及國籍等資訊。由於網頁屬於靜態網頁,因此可以直接分析網頁原始碼,獲取到我們需要的資料即可。程式如下圖所示:

很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!
QQ群:810735403

上述的程式中,我們首先利用requests請求網頁,然後利用BeautifulSoup解析網頁。這裡需要注意的是,不同的li標籤的“id"是根據排名來進行變化的。

所以我們要通過迴圈來構建不同的id屬性,以此來抓取對應的li標籤,並提取姓名、國籍等資訊。

利用self.downloadImg函式將圖片下載到本地,將抓取到的姓名和國籍等資訊儲存到本地。抓取到的資訊如下所示:

對頂級女神資料分析

獲取到資料後,我們來對資料進行一下清晰,並看一下從資料中能獲得什麼資訊。
1).大洲資訊統計

可以看到,美女們來自全球各地,這裡我們以國家為統計單位,統計各個大洲上國家出現的次數,注意,上面的”Filipina-American“,我們將其統計兩次,即既是菲律賓人也是美國人。通過下面的程式,我們可以視覺化的展示出不同大洲國家出現的次數。

可以看到,全球一百名美女來自了除南極洲之外的其他六個大洲,其中來自亞洲的國家是最多的,歐洲和北美洲緊隨其後。

2).國籍資訊統計
對於美女國籍的統計和視覺化處理,是一件非常麻煩的事情,這裡需要針對資料進行耐心的判斷處理,雖然非常消耗時間,但是好在數量並不是很多,如下圖所示:

我們針對於不同美女的不同國家資訊,只需要進行迴圈判斷,例如如果美女的國家是”Thai",我們就將其國家補充為“Thailand”。因為在後續利用pyecharts視覺化過程中,我們需要利用pyecharts自帶的標準國家名稱來顯示,否則的話就沒有辦法進行數字的顯示。經過判斷統計後,其視覺化結果如下。

可以看到,這一百名美女中,來自美國的是最多的,當然,不可否認的是很多都是持有美國和其他國家的雙重國籍身份的。來自英國的是13名美女,當然也是有許多是持有雙重國籍的身份。

而第三名的中國和韓國則是完全不存在雙重國籍的問題。從全球的分佈範圍來看,非洲和歐洲的人數直觀看上去非常的少,尤其是義大利、法國等一些歐洲國家,都沒有如選前100名的美女出現。

3).職業分析

對於榜單中美女們的職業,這裡也是非常的集中,只有三種職業:模特、演員、歌手。毫無疑問,每一個職業都是需要自身的條件非常的完美。


而在職業的佔比中,可以看到演員的佔比是最高的,因為顏值是一個演員的名片,也是打分成績中佔比最高的一項,因此在前100名中,演員佔比最高也就不足為奇了。

4).顏值打分
既然這個榜單是關於全球最美的100名女性,那顏值自然是逃不開的話題,最後,我們來利用百度的人臉識別來為100名美女的顏值做一個打分,來看一下究竟在AI的眼中,誰是最美的女明星。

上述程式中,通過向FaceScore函式傳遞圖片的路徑,在FaceScore函式中,通過get_file_content函式將圖片以二進位制形式讀取;

並通過base64庫進行編碼後,作為params引數post給請求url連結。並解析url連結返回的資訊,提取返回資訊中的顏值打分資料;

執行上述的程式後,我們就會得到關於100名美女的AI顏值打分。這裡 我們為大家展示一下,顏值打分前五名都有哪些明星。

在這裡還是要推薦下我自己建的Python開發交流學習(qq)群:810735403,群裡都是學Python開發的,如果你正在學習Python ,歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有Python軟體開發相關的),包括我自己整理的一份2021最新的Python進階資料和高階開發教程,歡迎進階中和想深入Python的小夥伴!