都说某乎卧虎藏龙,女网友有倾国倾城、闭月羞花之容貌,男网友有玉树临风、英俊潇洒的姿态,今日我们就来探索一番吧!

Python找寻知乎最美最帅之人 Python 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

Python找寻知乎最美最帅之人 Python 第2张

爬虫部分

我选取了某乎热度非常高的10个问题,男女兼而有之。“ 帅得惨绝人寰是帅到了哪种程度? ”,这样的问题下面该会是什么样的神颜呢,真是期待呢。

Python找寻知乎最美最帅之人 Python 第3张

这里爬取这些问题每一个的前百页回答(毕竟百页之后很少出现高赞回答)中的所有图片,毕竟这些问题都是一图胜千言的经典问题。爬虫的逻辑非常简单,将每个问题下的每个回答的所有jpg、png格式的图片链接存入Redis,参数列表仅需复制网页上的即可,唯一需要改变的是offset,我们正是用offset参数控制翻页(每次递增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])

颜值评分

颜值评分的部分呢,我调用了旷视的API,直接利用图片的url链接便可生成包含颜值评分的json数据,而这个评分正是百分制。

Python找寻知乎最美最帅之人 Python 第4张

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是哪一张?

Python找寻知乎最美最帅之人 Python 第5张

下面压力来到了男生这边,究竟“惨绝人寰”有多帅?

Python找寻知乎最美最帅之人 Python 第6张

嗯,确实,确实美,确实帅。欣赏完帅哥美女之后,想必给自己也来个颜值评分是基本操作吧?毕竟我可是和吴彦祖平均颜值评分超过85分的男人!

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄