前言

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

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

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

本篇大致内容:

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

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

环境介绍:

python 3.6

pycharm

requests

parsel(xapth)

1、爬取主播的图片

1.1 导入模块

import requests
import parsel

 

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

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

 

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

 

代码如下:

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 模拟浏览器发送请求,获取响应数据

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

 

代码如下:

response = requests.get(url=base_url, headers=headers)
html_data = response.text

 

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

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

 

代码如下:

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 保存数据

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

 

代码如下:

    # 准备文件名
    file_name = img_title + '.jpg'
    with open('img\\' + file_name, mode='wb') as f:
        print('正在保存:', file_name)
        f.write(img_data)

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

 

 

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

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

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

 

点击进入人脸识别

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

 

创建一个应用

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

 

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

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

 

不要下载,点击使用说明

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

 

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

 

安装SDK

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

 

pip install baidu-aip

 

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

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

 

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

 

代码如下:

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 导入模块,做循环检测的接口

代码如下:

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 数据输出

for a, b in enumerate(change_score):
    print('小姐姐的名字是:{}丨颜值名次是:第{}名丨她的颜值分数为:{}'.format(change_score[a][0], a+1, change_score[a][1]))

 

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

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

 

加企鹅群695185429即可免费获取,资料全在群文件里。资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等

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