Python实现人脸识别检测,对主播进行颜值排行

news2025/1/11 11:15:24

前言

嗨嗨,我亲爱的家人们

今天来整点不一样的,嘿嘿

用Python简单实现对人脸识别的检测,对某平台主播照片进行评分排名

应该对女主播这个词不陌生吧,怎么说应该还是蛮多人看过一些女主播吧

我无聊的时候也会看看,只不过我看的都是搞笑女主播哈哈

在这里插入图片描述

模块使用:

第三方模块

  • requests >>> pip install requests
  • tqdm >>> pip install tqdm 简单实现进度条效果

自带模块

  • os
  • base64

请添加图片描述

采集代码

导入模块

源码.点击领取即可

# 数据请求模块 --> 第三方模块 需要安装 pip install requests
import requests
import base64
from pprint import pprint
import os
from tqdm import tqdm

1. 发送请求, 模拟浏览器对url地址发送请求

模拟浏览器: 请求头 headers

字典数据类型, 一定要构建完成键值对

多页数据采集 --> 分析请求url 请求参数变化规律

for page in range(1, 13):
    print(f'==================正在采集第{page}页的数据内容==================')
    # 请求url地址 <复制>
    url = f'https://www.网站.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=1663&tagAll=0&page={page}'
    # 模拟伪装 <复制>
    headers = {
        # User-Agent 用户代理 表示浏览器基本身份信息
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }

发送请求

调用requests模块里面get请求方法对于url地址发送请求, 并且携带上headers请求头伪装, 最后用自定义变量response接收返回数据

response = requests.get(url=url, headers=headers)
# <Response [200]> 响应对象, 表示请求成功
print(response)

2. 获取数据, 获取服务器返回响应数据

开发者工具 --> response

response.json() 获取响应json字典数据, 返回的数据必须是完整json数据格式

当你遇到 simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

解决方法:

先获取文本数据 response.text

目的看一下我返回数据是什么样子的 <得到数据了呢, 还是得到数据有问题呢>

当你看到返回的数据 getLiveListJsonpCallback(里面字典样子花括号)

把链接里面 Callback参数删掉
3. 解析数据, 提取我们想要的数据内容

  • 主播名字
  • 主播照片url

response.json() --> 字典数据类型

根据键值对取值: 根据冒号左边的内容[键], 提取冒号右边的内容[值]

# for循环遍历, 把列表里面元素一个一个提取出来
for index in response.json()['data']['datas']:
    # 提取主播名字
    name = index['nick']
    # 提取照片
    img_url = index['screenshot']

4. 保存数据, 把图片保存本地文件夹

发送请求 img_url , 获取数据 获取二进制数据

response.content 获取响应二进制数据

图片/音频/视频/特定格式文件 —> 获取二进制数据进行保存

只要可以得到数据, 实现效果, 过程不重要

D:\自游\颜值检测\img\

\ 转义字符 把含有特殊含义字符, 转义成除了字符本身以外, 不含有任何意义

        img_content = requests.get(url=img_url, headers=headers).content
        # 'img\\'<文件夹> + name<文件名> + '.jpg'<文件后缀>  wb 保存方式, 二进制保存
        with open('img\\' + name + '.jpg', mode='wb') as f:
            f.write(img_content)
        print(name, img_url)

效果展示

请添加图片描述

检测代码

python学习交流Q群:770699889 ### 源码领取
# 数据请求模块 --> 第三方模块 需要安装 pip install requests
import requests
import base64
from pprint import pprint
import os
from tqdm import tqdm
def beauty(img):
    '''
    现成复制的
    获取 access_token 值
    '''
    try:
        # client_id 为官网获取的AK, client_secret 为官网获取的SK
        host = ''

        response = requests.get(host)
        access_token = response.json()['access_token']
        '''
        人脸检测与属性分析
        '''
        # 读取文件内容 照片内容
        f = open(f'img\\{img}', mode='rb')
        # 读取出来文件 转成 base64 编码格式
        img_base64 = base64.b64encode(f.read())
        """
        现成API调用代码
        """
        request_url = ""
        params = {
            "image": img_base64,  # 需要传递 图片 base64
            "image_type": "BASE64",
            "face_field": "beauty"
        }
        request_url = request_url + "?access_token=" + access_token
        headers = {'content-type': 'application/json'}

        response = requests.post(request_url, data=params, headers=headers)
        beauty = response.json()['result']['face_list'][0]['beauty']
        return beauty
    except:
        return '识别失败'


# 读取文件内容 或者 文件名字
lis = []
files = os.listdir('img\\')
print('正在进行颜值检测, 稍后.......')
for file in tqdm(files[100:200]):
    num = beauty(file)
    if num != '识别失败':
        title = file.split('.')[0]
        dit = {
            '主播': title,
            '颜值': num
        }
        lis.append(dit)

lis.sort(key=lambda x:x['颜值'], reverse=True)

i = 1
for li in lis:
    print(f'颜值排名第{i}的是{li["主播"]}, 颜值评分是{li["颜值"]}')
    i += 1

颜值检测效果

请添加图片描述

排名展示

我觉得这个排名有点迷糊

第一并不是最好看的,我觉得后面的好看些

随便挑几张给你们看看吧

请添加图片描述

请添加图片描述

请添加图片描述

最后

今天的分享到这里就结束了

给大家推荐一些Python视频教程,希望对大家有所帮助:

Python零基础教学合集

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2009年数学二真题复盘

选择题: 间断点的判断的前置芝士: 间断点的定义 设函数f(x)在点的去心领域内有定义,若f(x)满足以下条件之一: 在x=没有定义在x=有定义,但是不存在,或者存在,但是极限值不等于函数值。 类型定义 相关概念第一类间断点

CMS垃圾回收器

概述 CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上&#xff0c;这种垃圾回收器非常适合。在启动JVM参数加上-XX:UseConcMarkSweepGC&#xff0c;这个参数表示对于老年代的回收采用CMS。CMS采用的基础算…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.13 j2cache 相关配置

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.13 j2cache 相关配置5.13.1 j2cache 相关配置5.13…

直播绿幕抠图的例子(绿幕抠图直播实例参考)

阿酷TONY / 2022-11-21 / 长沙 什么是绿幕抠图&#xff1a; 设定绿幕或绿布&#xff0c;做直播软件抠图&#xff0c;这时绿幕绿布就可以被实时的抠掉&#xff0c;绿色就变成透明了&#xff0c;只剩下绿幕外的人物&#xff0c;此时添加上直播的背景画质&#xff0c;就实现了绿…

Git——Git常用命令

目录 常用命令概览 1. 设置用户签名 2. 初始化本地库 2.1 初始化本地库 2.2 查看文件 2.3 查看隐藏文件 2.4 进入到下一个目录 3. 查看本地库状态 4.添加暂存区 4.1 删除文件 5. 提交本地库 5.1 将暂存区的文件提交到本地库 6. 查看版本信息的命令 7.修改文件 8. 历史版本…

【Python入门指北】服务器信息清洗

服务器信息清洗 文章目录服务器信息清洗一、 subprocess 执行本机命令二、 获取服务器的硬件基础信息1. 基础信息2. 厂家和产品信息3. CPU 信息3.1 查看物理CPU型号3.2 查看物理CPU颗数3.3 查看每颗物理 CPU 的核心数4. 内存信息练习内存处理参考代码一、 subprocess 执行本机命…

智云通CRM:如何提前识别哪些客户爱说“不”?

有人说&#xff0c;做业务是最好的锻炼意志力方法&#xff0c;因为做业务的人经常会被客户拒绝甚至会扫地出门。被拒绝时&#xff0c;业务员一定要擦亮眼睛&#xff0c;善于察言观色&#xff0c;洞察客户的心理活动。透过观察了解客户为什么说“不”&#xff0c;客户拒绝情况有…

聚观早报 | 推特临时培训员工应对世界杯;世界杯足球内置传感器

今日要闻&#xff1a;推特临时培训员工应对世界杯;京东靠降本增效实现转亏为盈;世界杯足球内置传感器;艾格重返迪士尼CEO职位;特斯拉明年或开启收购计划 推特临时培训员工应对世界杯 据消息&#xff0c; 2022年世界杯拉开帷幕&#xff0c;推特的使用量即将激增&#xff0c;其维…

陆地卫星(Landsat)计划:50多年的星球档案

陆地卫星计划&#xff1a;陆地卫星1号至陆地卫星9号 1967年&#xff0c;NASA&#xff08;美国国家航空与航天局&#xff09; 提出了“地球资源技术卫星”计划&#xff0c;从此开始了在理论上对地球资源技术卫星系列的可行性研究&#xff0c;于是&#xff0c;陆地卫星 (Landsat…

汽车安全气囊设计?Abaqus/Part特殊建模方法-附案例step-by-step教学

作者 | 邓怡超 Abaqus/Part基于特征的建模功能可以说非常齐全&#xff0c;基本能够满足一般的分析要求&#xff0c;更复杂的模型则可以通过与专业三维建模软件之间的接口来导入&#xff0c;今天要说的是部件的另外一种建模方法。 有一种类型的分析&#xff0c;部件自身的初始…

坚持自学软件测试,半年的辛苦没有白费,不过才拿到10k的offer

找软件测试的工作只用了一周的时间&#xff0c;因为自己的年纪已经25岁&#xff0c;所以在简历上包装了两年的工作经验&#xff0c;但是我学的技术水平自认为还可以&#xff0c;因为我当时自学时用的教程比较有深度。 之所以要转行&#xff0c;我相信做机械工作的朋友都明白&a…

神经网络-前向传播Forward propagation

前向传播Forward propagation 前向传播算法就是&#xff1a; 将上一层的输出作为下一层的输入&#xff0c;并计算下一层的输出&#xff0c;一直到运算到输出层为止 在正式介绍前向传播前&#xff0c;先简单介绍计算图&#xff08;Computational Graph&#xff09;的概念。 yw…

LiDAR 完整指南介绍:激光探测和测距

什么是激光探测和测距 (LiDAR)&#xff1f; LiDAR 的全称是 Light Detection and Ranging (激光探测及测距)&#xff0c;LIDAR 是一种主动测量方式&#xff0c;主要由激光发射部分、接收部分组成、信号处理部分组成&#xff0c;从其名称可以发现 LIDAR 的两个主要基本功能是测…

关于我的家乡网页设计主题题材——梧州14页HTML+CSS网页

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

iOS关于列表布局的几种实现方式小结

式 &#xff0c;功能的要求是最多六行&#xff0c;动态展示。当时想到的方案是&#xff0c;抽象出一个cell,初始化六个标签&#xff0c;动态的控制显示和隐藏&#xff0c;这样功能上没有问题&#xff0c;就是代码有些冗余。请教了身边的美女同事&#xff0c;她那边的思路是用UI…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.17 发送多部件邮件

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.17 发送多部件邮件5.17.1 发送多部件邮件5.17.2 添…

Python脚本之并发执行加密方法【一】

本文为博主原创&#xff0c;未经授权&#xff0c;严禁转载及使用。 本文链接&#xff1a;https://blog.csdn.net/zyooooxie/article/details/125650427 之前写过一篇 JMeter性能测试之参数加密【一】&#xff0c;现在把后面的补上。实际第一篇就写完了 JMeter压测遇到加密接口…

Java Class11

Java Class11 集合 概念 集合是用于存储对象的工具类容器&#xff0c;实现了常用的数据结构&#xff0c;提供了一系列公开的方法用于删除、修改、查找和遍历数据&#xff0c;降低了日常开发成本。 三种集合 Set set集合中元素是无序、不可重复的 List list集合中元素是从前到…

公众号免费搜题功能搭建

公众号免费搜题功能搭建 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xf…

基于C语言实现进度条 | 附源码

进度条的应用在软件中无处不在&#xff0c;拷贝一个文件需要一个进度条&#xff0c;加载一个文件也需要一个进度条&#xff0c;来标志完成与否。 那么 &#xff0c;一个进度条有哪些元素呢&#xff1a; 一个不断向右生长的容器&#xff08;直观的看出当前的进度&#xff09; …