Python找寻知乎最美最帅之人
程序员文章站
2022-05-04 11:17:43
都说某乎卧虎藏龙,女网友有倾国倾城、闭月羞花之容貌,男网友有玉树临风、英俊潇洒的姿态,今日我们就来探索一番吧! 爬虫部分 我选取了某乎热度非常高的10个问题,男女兼而有之。“ 帅得惨绝人寰是帅到了哪种程度? ”,这样的问题下面该会是什么样的神颜呢,真是期待呢。 这里爬取这些问题每一个的前百页回答(毕 ......
都说某乎卧虎藏龙,女网友有倾国倾城、闭月羞花之容貌,男网友有玉树临风、英俊潇洒的姿态,今日我们就来探索一番吧!
爬虫部分
我选取了某乎热度非常高的10个问题,男女兼而有之。“ 帅得惨绝人寰是帅到了哪种程度? ”,这样的问题下面该会是什么样的神颜呢,真是期待呢。
这里爬取这些问题每一个的前百页回答(毕竟百页之后很少出现高赞回答)中的所有图片,毕竟这些问题都是一图胜千言的经典问题。爬虫的逻辑非常简单,将每个问题下的每个回答的所有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数据,而这个评分正是百分制。
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分的男人!
上一篇: 历史上真的有穆桂英这个人吗 穆桂英是怎么成为宋朝将领的
下一篇: matplotlib part1