都說(shuō)某乎臥虎藏龍纸肉,女網(wǎng)友有傾國(guó)傾城溺欧、閉月羞花之容貌,男網(wǎng)友有玉樹(shù)臨風(fēng)柏肪、英俊瀟灑的姿態(tài)姐刁,今日我們就來(lái)探索一番吧!
爬蟲(chóng)部分
我選取了某乎熱度非常高的10個(gè)問(wèn)題烦味,男女兼而有之聂使。“帥得慘絕人寰是帥到了哪種程度谬俄?”岩遗,這樣的問(wèn)題下面該會(huì)是什么樣的神顏呢,真是期待呢凤瘦。
這里爬取這些問(wèn)題每一個(gè)的前百頁(yè)回答(畢竟百頁(yè)之后很少出現(xiàn)高贊回答)中的所有圖片宿礁,畢竟這些問(wèn)題都是一圖勝千言的經(jīng)典問(wèn)題。爬蟲(chóng)的邏輯非常簡(jiǎn)單蔬芥,將每個(gè)問(wèn)題下的每個(gè)回答的所有jpg梆靖、png格式的圖片鏈接存入Redis,參數(shù)列表僅需復(fù)制網(wǎng)頁(yè)上的即可笔诵,唯一需要改變的是offset返吻,我們正是用offset參數(shù)控制翻頁(yè)(每次遞增5)。
def get_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])
顏值評(píng)分
顏值評(píng)分的部分呢乎婿,我調(diào)用了曠視的API测僵,直接利用圖片的url鏈接便可生成包含顏值評(píng)分的json數(shù)據(jù),而這個(gè)評(píng)分正是百分制。
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是需要申請(qǐng)的沐旨,我把所有圖片都通過(guò)API得到其對(duì)應(yīng)得分,并存入MongoDB中榨婆,不同的問(wèn)題下的圖片評(píng)分存儲(chǔ)到不同的表中磁携。
所有圖片的平均顏值評(píng)分為69.66,總體來(lái)看大概是"良"的檔次良风,大概是AI的評(píng)分太為嚴(yán)格谊迄,接下來(lái)看看那些評(píng)分超過(guò)91的女生,是怎樣的的靚麗風(fēng)景烟央,順便猜猜最高評(píng)分94.396是哪一張统诺?
下面壓力來(lái)到了男生這邊,究竟“慘絕人寰”有多帥疑俭?
嗯粮呢,確實(shí),確實(shí)美怠硼,確實(shí)帥鬼贱。欣賞完帥哥美女之后,想必給自己也來(lái)個(gè)顏值評(píng)分是基本操作吧香璃?畢竟我可是和吳彥祖平均顏值評(píng)分超過(guò)85分的男人这难!