都說某乎臥虎藏龍,女網友有傾國傾城、閉月羞花之容貌,男網友有玉樹臨風、英俊瀟灑的姿態,今日我們就來探索一番吧!
爬蟲部分
我選取了某乎熱度非常高的10個問題,男女兼而有之。“帥得慘絕人寰是帥到了哪種程度?”,這樣的問題下面該會是什麼樣的神顏呢,真是期待呢。
這裏爬取這些問題每一個的前百頁回答(畢竟百頁之後很少出現高贊回答)中的所有圖片,畢竟這些問題都是一圖勝千言的經典問題。
爬蟲的邏輯非常簡單,將每個問題下的每個回答的所有jpg、png格式的圖片鏈接存入Redis,參數列表僅需複製網頁上的即可,唯一需要改變的是offset,我們正是用offset參數控制翻頁(每次遞增5)。
defget_urls(self,offset,urls):
params={
'include': '',
'limit': 5,
'offset': offset,
'platform': 'desktop',
'sort_by': 'default'
}
r=requests.get(self.url,headers=self.headers,params=params)
data=r.json()['data']
for i in data:
content=i['content']
pic_urls=re.findall(r'data-actualsrc="(.*?.(jpg|png))',content)
for j in range(len(pic_urls)):
self.r.sadd("urls",pic_urls[j][0])
顏值評分
顏值評分的部分呢,我調用了曠視的API,直接利用圖片的url鏈接便可生成包含顏值評分的json數據,而這個評分正是百分制。
data={
'api_key':'',
'api_secret':'',
'return_attributes': 'beauty,gender',
'image_url': image_url
}
r=requests.post(url=self.url,headers=self.headers,data=data)
score_data=json.loads(r.text)
if len(score_data['faces'])==0:
print("未從該圖片中找到人像!")
else:
face_num=score_data['face_num']
for i in range(face_num):
face=score_data['faces'][i]
beauty=face['attributes']['beauty']
gender=face['attributes']['gender']
if gender['value']=='Female':
score=beauty['female_score']
else:
score=beauty['male_score']
item={'image_url':image_url,
'score':score
}
self.db['score2'].insert_one(item)
api_key以及api_secret是需要申請的,我把所有圖片都通過API得到其對應得分,並存入MongoDB中,不同的問題下的圖片評分存儲到不同的表中。
所有圖片的平均顏值評分爲69.66,總體來看大概是"良"的檔次,大概是AI的評分太爲嚴格,接下來看看那些評分超過91的女生,是怎樣的的靚麗風景,順便猜猜最高評分94.396是哪一張?
下面壓力來到了男生這邊,究竟“慘絕人寰”有多帥?
嗯,確實,確實美,確實帥。欣賞完帥哥美女之後,給自己也來個顏值評分是基本操作吧?畢竟我可是和吳彥祖平均顏值評分超過85分的男人!
當我的自拍圖像經過這神經網絡模型的一瞬間,誰是這最美最帥之人想必已經有了答案。
最後,相關代碼已上傳至後臺,回覆「帥」即可獲取。
有你想看的精彩
速速上車