首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >你喜欢的女主播颜值多少分,今天带你测试虎牙直播女主播的颜值

你喜欢的女主播颜值多少分,今天带你测试虎牙直播女主播的颜值

作者头像
松鼠爱吃饼干
发布于 2020-09-15 07:44:14
发布于 2020-09-15 07:44:14
81600
代码可运行
举报
文章被收录于专栏:Python分享Python分享
运行总次数:0
代码可运行

前言

随着现在直播的兴起,主播这个职业逐渐走入人们的视野。现在各大平台都有当家花旦、一哥、一姐等称号。其实人气是一方面,但是颜值才是硬实力。

接下来带大家进行主播的颜值检测评分,看看谁是最靓的崽(*^▽^*)

本篇大致内容:

1、爬取主播的直播人脸图

2、调用百度人脸检测开放接口,进行颜值打分

环境介绍:

python 3.6

pycharm

requests

parsel(xapth)

1、爬取主播的图片

1.1 导入模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import parsel

1.2 分析目标网页,确定爬取的url路径,headers参数

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
base_url = 'https://www.huya.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'}

1.3 发送请求 -- requests 模拟浏览器发送请求,获取响应数据

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
response = requests.get(url=base_url, headers=headers)
html_data = response.text

1.4 解析数据 -- parsel 转化为Selector对象,Selector对象具有xpath的方法,能够对转化的数据进行处理

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

    # 请求图片数据
    img_data = requests.get(url=img_url, headers=headers).content

1.5 保存数据

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # 准备文件名
    file_name = img_title + '.jpg'
    with open('img\\' + file_name, mode='wb') as f:
        print('正在保存:', file_name)
        f.write(img_data)

2、调用百度人脸检测开放接口

在百度AI开放平台注册账号

点击进入人脸识别

创建一个应用

创建完成以后进入管理应用,打开应用,点击下载SDK

不要下载,点击使用说明

安装SDK

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install baidu-aip

根据百度接口示例来写代码

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from aip import AipFace
import base64


def face_rg(file_Path):
    """ 你的 api_id AK SK """
    api_id = '20107883'
    api_key = 'Xela0yPoFtERUBSTFtNlEKbO'
    secret_key = 'E5TmneyfAzxfzowgwRErLT8RYe7MfkfG'

    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'..\主播颜值检测\img\蓝云-夏花依旧.jpg')

3、检测打分

3.1 导入模块,做循环检测的接口

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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是元组的索引
print(change_score)

3.2 数据输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for a, b in enumerate(change_score):
    print('小姐姐的名字是:{}丨颜值名次是:第{}名丨她的颜值分数为:{}'.format(change_score[a][0], a+1, change_score[a][1]))

运行代码后得出最后的颜值打分检测结果

如果喜欢的话请关注我哟

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux进阶命令-nohup&screen
作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
运维小路
2024/11/01
3470
Linux进阶命令-nohup&screen
运维必备:Linux系统下的两款终端多重会话工具
描述: 在 Linux 运维中通常会打开一个终端窗口(Terminal Windows),并在其命令行中输入执行已安装的命令,用户与计算机的这种临时交互,我们称为一次“会话(session)”。会话的一个重要特点是窗口与其中启动的进程是连在一起的。打开窗口会话开始;关闭窗口会话结束,会话内部的进程也会随之终止,不管有没有运行完成。
全栈工程师修炼指南
2024/05/28
8170
运维必备:Linux系统下的两款终端多重会话工具
Linux screen 命令
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
为为为什么
2022/08/06
2.1K0
Linux screen 命令
教Linux运维人员怎样使用screen
今天小编为大家分享的文章是关于Linux运维利器-screen的使用介绍,相信很多Linux运维人员对此都有所了解,下面跟小编一起来看一看文章内容吧。
小小科
2020/05/14
2K0
Linux不间断会话服务Screen的简单用法
系统管理员经常需要SSH 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp,rsysnc,sftp,scp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
yuanfan2012
2019/06/02
1.6K0
Linux centos screen命令基础用法
screen是一个在Linux系统中非常有用的工具,特别是当你需要在远程服务器上运行长时间运行的任务时
用户10792926
2023/11/30
8510
Linux命令之screen——终端切换
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
浩Coding
2019/07/03
6.7K0
Linux screen命令的作用是什么?screen命令该如何使用?
参考文档:https://wangchujiang.com/linux-command/c/screen.html
房东的狗丶
2023/04/28
2K0
10.35 screen工具
screen工具 为了不让一个任务意外中断 nohup command & screen是一个虚拟终端 yum install -y screen screen直接回车就进入了虚拟终端 ctral a组合键再按d退出虚拟终端,但不是结束 screen -ls 查看虚拟终端列表 screen -r id 进入指定的终端 screen -S aming screen -r aming screen screen,虚拟的一个屏幕,也可以理解为一个虚拟的终端 需求,执行一个脚本,需要一天一夜,而且脚本会输出
运维小白
2018/02/06
7980
Linux Screen命令提升运维效率
会话恢复:只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。
Power
2025/02/28
3580
Screen 使用
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
用户1065635
2019/11/27
1.3K0
Linux用screen 在后台运行程序
一般的linux系统都会自带screen,如果没有安装的话,使用 $ sudo apt-get install screen
meowrain
2021/04/22
2.8K0
【linux命令讲解大全】175.轻松掌握Linux操作的利器——Screen会话管理工具
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
全栈若城
2024/03/02
3690
linux screen 命令详解(可以中断终端界面运行)
系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
青阳
2021/03/22
5.2K0
screen 简单使用
      系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连 接,否则这个任务就会被杀掉,一切半途而废了。 作用: 会话恢复 只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行
BGBiao
2018/02/26
1.3K0
详解Linux Screen让程序保持后台运行
您是否曾经遇到过在远程计算机上执行长时间运行的任务,突然连接中断,SSH会话终止以及工作丢失的情况。 好吧,这在某个时候发生在我们所有人身上,不是吗? 幸运的是,有一个名为screen的实用程序,可让我们恢复会话。
小锋学长生活大爆炸
2020/08/13
15K0
详解Linux Screen让程序保持后台运行
Linux终端命令神器--Screen命令详解。助力Linux使用和管理
最早Unix发布,其高效率的交互迅速获得大家青睐;但是,随后Unix宣布闭源,以及商业收费后,自然会有一个新的系统来替代。于是,就有了GNU计划(英语:GNU Project),又译为革奴计划。
Mintimate
2021/07/09
84.2K6
Linux终端命令神器--Screen命令详解。助力Linux使用和管理
Linux 管理远程会话 screen:掌握终端的多任务操作
在日常开发和服务器管理工作中,特别是当我们通过 SSH 连接到远程服务器时,通常需要同时执行多个任务。
南山竹
2024/06/28
3310
Linux 管理远程会话 screen:掌握终端的多任务操作
Linux使用笔记2-screen的妙用(保留端口会话)
本文介绍了Linux使用笔记2-screen的妙用(保留端口会话),讲解了使用screen工具实现端口会话保留的功能,方便在断网或关闭终端后重新连接时继续执行之前的命令,避免重复输入。
锦小年
2018/01/02
1.5K0
从CentOS7.6升级到Rocky9.1镜像制作总结
卸载旧的epel仓库,重新安装epel仓库,删除冲突软件包,重装rpmconf并执行rpmconf,在交互界面一直输入Y和回车即可
用户4303685
2023/07/14
3.8K0
推荐阅读
相关推荐
Linux进阶命令-nohup&screen
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档