-
总看一个主播多没意思,用python给女主播做一个颜值排名,只看颜值高的!
众所周知,能去直播的女主播一般都还可以,但是两三个还能肉眼分辨看看谁好看,几百个可就看不过来了吧。
那这时候python的用处就来了,对她们的照片进行自动分析打分,给她们做一个排行榜,哪个好看一目了然~
获取照片
既然要做排名打分,那么就得先准备图片,第一步先获取女主播图片。
1、分析目标网页
确定爬取的url路径,headers参数。
base_url = 'https://www.***.com/g/4079' # 把**改成某动物直播的拼音 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'}
2、发送请求
requests 模拟浏览器发送请求,获取响应数据。
response = requests.get(url=base_url, headers=headers)
html_data = response.text
3、解析数据
parsel 转化为Selector对象,Selector对象具有xpath的方法,能够对转化的数据进行处理。
parse = parsel.Selector(html_data) data_list = parse.xpath('//li[@class="game-live-item"]') # print(data_list) for data in data_list: img_url = data.xpath('./a/img/@data-original').get() # 主播人脸图片的url地址 img_title = data.xpath('.//span/i/@title').get() # 主播的名字 print(img_url, img_title)
4、保存数据
# 请求图片数据 img_data = requests.get(url=img_url, headers=headers).content # 准备文件名 file_name = img_title + '.jpg' with open('img\\' + file_name, mode='wb') as f: print('正在保存:', file_name) f.write(img_data)
颜值检测
调用人脸接口,进行颜值检测,没有的话大家自己弄一下,我就不提供了。
如果文章看不过瘾,我给大家准备了对应的视频讲解,Python对女主播进行颜值打分,实现排名
def face_rg(file_Path): """ 你的 api_id AK SK """ api_id = '19895116' api_key = 'aR6Oytn7ycDyhjBqPYCAGgqh' secret_key = 'dXjz8QELSaj238GuEr0I3xnarEurWhit' client = AipFace(api_id, api_key, secret_key) # 调用颜值检测的接口(实例化对象) with open(file_Path, 'rb') as file: data = base64.b64encode(file.read()) # 图片类型 BASE64:图片的base64值,base64编码后的图片数据 image = data.decode() imageType = "BASE64" options = {} options["face_field"] = 'beauty' """ 调用人脸检测 """ result = client.detect(image, imageType, options) # print(result) return result['result']['face_list'][0]['beauty'] if __name__ == '__main__': face_rg(r'C:\Users\admin\Desktop\练习\主播颜值检测\img\9c-专属男友.jpg')
# 我还给大家准备了这些资料,直接在群里就可以免费领取了。 # 群:924040232 # python学习路线汇总 # 精品Python学习书籍100本 # Python入门视频合集 # Python实战案例 # Python面试题 # Python相关软件工具/pycharm永久激活
四、颜值打分
万事具备只欠东风,打分的东风。
import os from 主播颜值检测.颜值检测_接口 import face_rg path = './img' image_list = os.listdir(path) # print(image_list) score_dict = {} for image in image_list: try: name = image.split('.')[0] # print(name) image_path = path + '\\' + image # 图片的路径 face_score = face_rg(image_path) # print(face_score) score_dict[name] = face_score # print(score_dict) except Exception as e: print('正在检测:{}|检测失败!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'.format(str(name))) else: print('正在检测:{}|颜值打分为:{}'.format(str(name), str(face_score))) print('\n===========================================检测完成===========================================') print(score_dict.items()) # 字典根据值降序排列 change_score = sorted(score_dict.items(), key=lambda x: x[1], reverse=True) # lambda中的1是元组的索引 x表示参数 x[1]表示返回值 print(change_score) # 数据输出 # enumerate枚举 enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate print(list(enumerate(change_score))) for a, b in enumerate(change_score): print('小姐姐的名字是:{}丨颜值名次是:第{}名丨她的颜值分数为:{}'.format(change_score[a][0], a+1, change_score[a][1]))
颜值打分
颜值排行
哎,到这里就成功了,兄弟们可以去试试。
记得点赞三连哇,爱你哟~
出处:https://www.cnblogs.com/hahaa/p/15797913.html
最新更新
Python获取微信好友数据
Python 的排序方法 sort 和 sorted 的区别
WinForm轻松实现自定义分页 (转载)
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
在win系统安装配置 Memcached for PHP 5.3 图文
箱图在数据预处理中的应用
Python WEB开发:用Tornado框架制作简易【表
自从学会了用python解析视频,都不用去找
Python代码阅读(第50篇):对列表间隔取
Python爬虫+数据分析+可视化展示,分析《
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
链接服务器读取Mysql---出现消息 7347,级别
SQL Server解惑——为什么你拼接的SQL语句换
MySQL视图了解一下
laf.js - 开源的云开发框架(README.md)
javascript创建对象
Node.js 源码分析 - 从 main 函数开始
Node.js 源码分析 - 原生模块(C++模块)的注册
ECharts图标中用的js相关的处理方法
GoJS 使用笔记
单元测试 - 测试场景记录
Node.js 源码分析 - 加载 js 文件
ES6入门
聊聊动效降级