都说某乎卧虎藏龙,女网友有倾国倾城、闭月羞花之容貌,男网友有玉树临风、英俊潇洒的姿态,今日我们就来探索一番吧!
爬虫部分
我选取了某乎热度非常高的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分的男人!
当我的自拍图像经过这神经网络模型的一瞬间,谁是这最美最帅之人想必已经有了答案。