【Python实战】一大波高颜值主播来袭:快看,某网站颜值排名,为了这个排名我可是大费周章啦,第一名不亏是你...(人脸检测+爬虫实战)
导语

民间一直有个传闻......「听说某站的小哥哥小姐姐颜值都很高哦!」
(不是颜值高才能加入,是优秀的人恰好颜值高)
所有文章完整的素材+源码都在👇👇
粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。
木木子当然不负众望,今天就火速带你们走进某站,看看那些超高颜值的主播们的大比拼,谁
才是你心目中的第一呢?
深度解析的那些高颜值主播们。快看!满眼全是高颜值主播,爱了爱了鸭!

今天小编就用 Python实现人脸识别检测, 对某平台美女主播照片进行评分排名啦~看看那些主播
们,真的是高颜值主播嘛??

正文
本次文章主要内容:
一. 采集主播照片 二. 对于照片进行人脸识别检测, 进行打分 三. 评分排名。
人脸检测识别, 进行颜值评分 使用百度云API接口。
1. 注册一个百度云账号 2. 创建应用 --> 领取免费资源 3. 点击技术文档 4. Access Token获取
一、环境准备
1)运行环境
开发环境:Python3、Pycharm社区版、requests、tqdm、部分自带的模块安装Python即可
使用。
相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以直接找我厚台获取
2)模块安装
第三方库的安装方式如下:
一般安装:pip install +模块名镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名
(还有很多国内镜像源 这里是豆瓣的 用习惯了。其他的镜像源可以去看下之前的文章都有的)
模块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了几个点的。
二、爬虫的基本思路
1)数据来源分析
1. 明确需求: 采集的网站是那个?采集的数据是那个? 主播照片/主播昵称。
2. 分析:主播照片/主播昵称 在什么地方可以获得。
通过开发者工具<浏览器自带工具>进行抓包<数据包>分析 打开开发者工具: F12 / 鼠标右键点击检查选择network
1》定位找到单张图片url地址 。
2》通过图片url地址中, 一段参数, 去搜索查询所对应数据包 - 点击第二页 --> XHR --> 第一个
数据包, 通过搜索抓包分析得到的数据包:
https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=1663&tagAll=0&callback=getLiveListJso npCallback&page=2 包含主播昵称 / 照片
三、代码实现步骤
1. 发送请求, 模拟浏览器对于url地址发送请求 。
请求链接: https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=1663&tagAll=0&callback=getLiveListJsonpCallback&page=2
2. 获取数据, 获取服务器返回响应数据 开发者工具: response 。
3. 解析数据, 提取我们想要的数据内容 照片url / 昵称 。
4. 保存数据, 把图片数据保存本地文件夹。
四、代码实现
主程序——
"""
# 导入数据请求模块 --> 第三方模块, 需要安装 pip install requests
import requests
import base64
import os
import time
from tqdm import tqdmdef score(file):"""定义函数:param file: 文件路径:return:"""headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'}# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=AK&client_secret=SK'response = requests.get(host, headers=headers)access_token = response.json()['access_token']# 读取一张图片数据img_content = open(file, mode='rb').read()base_data = base64.b64encode(img_content)request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"params = {# 图片数据"image": base_data,"image_type": "BASE64","face_field": "beauty"}request_url = request_url + "?access_token=" + access_tokenheaders_1 = {'content-type': 'application/json'}json_data = requests.post(request_url, data=params, headers=headers_1).json()try:num = json_data['result']['face_list'][0]['beauty']return numexcept:return '识别失败'info_list = []
# 对于所有照片进行颜值检测 --> 获取文件路径/文件名字
files = os.listdir('img\\')
print('正在做颜值评分, 请稍后.....')
for file in tqdm(files):# 延时请求慢点time.sleep(0.5)# 完整的路径filename = 'img\\' + file# 切片name = file[:-4]result = score(file=filename)if result != '识别失败':dit = {'主播': name,'颜值': result}# 列表添加元素info_list.append(dit)info_list.sort(key=lambda x:x['颜值'], reverse=True)
i = 1
for info in info_list:print(f'颜值排名第{i}的是{info["主播"]}, 颜值评分是{info["颜值"]}')i += 1# """
# 1. 发送请求, 模拟浏览器对于url地址发送请求
# 伪装模拟 --> headers 请求头
# 字典数据类型, 要构建完整键值对
# <Response [200]> 响应对象, 表示请求成功
# """
# # 请求链接
# url = 'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=1663&tagAll=0&page=2'
# # 模拟浏览器
# headers = {
# 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
# }
# # 发送请求
# response = requests.get(url=url, headers=headers)
# """
# 2. 获取数据, 获取服务器返回响应数据
# 开发者工具: response
# - requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
# 原因: 获取数据不是完整json数据格式
# 解决:
# 1. 获取文本数据, 查看数据返回效果
# 2.
# - 通过正则表达式提取数据
# - 删掉 请求链接 里面参数 Callback
#
# 3. 解析数据, 提取我们想要的数据内容
# 照片url / 昵称
# response.json() --> 字典数据类型
# 根据键值对取值 --> 根据冒号左边的内容[键], 提取冒号右边的内容[值]
# """
# # for循环遍历, 一个一个提取列表里面元素
# for index in response.json()['data']['datas']:
# # 提取照片
# img_url = index['screenshot']
# # 提取昵称
# name = index['nick']
# print(name, img_url)
# """
# 4. 保存数据 --> 需要对图片链接发送请求, 获取二进制<图片>数据
# 'img\\'<文件夹> + name<文件名> + '.jpg'<文件格式>, mode='wb'<二进制保存>
# """
# # 获取图片二进制数据
# img_content = requests.get(url=img_url, headers=headers).content
# # 保存数据
# with open('img\\' + name + '.jpg', mode='wb') as f:
# f.write(img_content)
五、效果展示
1)数据下载

2)保存数据

3)人脸检测
图片数据下载之后进行人脸检测排名,第一步调用api接口。
登录百度云账号——控制台——人脸识别。

下一步创建应用。

下一步实名免费领取,具体怎么使用可以去技术文档查看即可,不会的可以找我拿视频教程一
步一步来哈。

4)颜值排名

5)排名前三主播


总结
好啦,大家觉得排名前三的女主播颜值谁最好看呢?你能打多少分啦,这颜值是你的款蛮~
高颜值主播强势来袭,赶紧为你喜欢的高颜值小哥哥小姐姐打call吧。
今天的内容就写到这里正式结束啦,下一期我们再见,goodby!
🎯完整的免费源码领取处:找我吖!文末公众hao可自行领取,滴滴我也可!
🔨推荐往期文章——
项目1.8 Wifi破解免费
Python编程零基础如何逆袭成为爬虫实战高手之《WIFI破解》(甩万能钥匙十条街)爆赞爆赞~
项目1.9 爬虫+数据分析实战:全球疫情最新消息、淘宝爬虫、秒杀脚本
【Python合集系列】爬虫有什么用,网友纷纷给出自己的答案,王老师,我..我想学那个..爬虫。可以嘛?“(代码免费分享)
项目1.2 Python爬虫合集系列
【Python爬虫系列】为什么我喜欢python?来看看这些让人爱不释手的原因吧,购物网站大盘点,看过这些python做的项目,我立马入坑了…(神奇 | 爱了,爱了)
项目1.0 2.14 情人节快乐玫瑰合集
【Python表白代码】 2.14“Valentine‘s Day”“没别的意思 就是借着特殊日子说声喜欢你”你在哪儿?我去见你~(各种玫瑰源码合集)
🎄文章汇总——
汇总合集 Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~

相关文章:
【Python实战】一大波高颜值主播来袭:快看,某网站颜值排名,为了这个排名我可是大费周章啦,第一名不亏是你...(人脸检测+爬虫实战)
导语 民间一直有个传闻......「听说某站的小哥哥小姐姐颜值都很高哦!」 (不是颜值高才能加入,是优秀的人恰好颜值高) 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末…...
Linux进程学习【三】
✨个人主页: Yohifo 🎉所属专栏: Linux学习之旅 🎊每篇一句: 图片来源 🎃操作环境: CentOS 7.6 阿里云远程服务器 Perseverance is not a long race; it is many short races one after another…...
Spring自动装配的底层逻辑
Spring是如何自动装配Bean的?看源码一些自己的理解,如有错漏,请指正 使用Spring之前我们要先去web.xml中设置一下Spring的配置文件,在Spring的配置文件中,是通过component-scan扫描器去扫描base-package底下所有的类装…...
华为OD机试 - 数组合并(C++) | 附带编码思路 【2023】
刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…...
在vue3+ts的项目中,如何解决vant组件自带表单校验不生效?
问题描述: 点击发送验证码后,为了让逻辑更加严谨,使用了vant组件自带的表单校验,进行二次校验,防止验证码发送成功后,登录手机号被二次修改,但根据官网描述cv之后不生效,甚至连获取…...
华为OD机试真题Python实现【子序列长度】真题+解题思路+代码(20222023)
子序列长度 题目 有 N 个正整数组成的一个序列 给定一个整数sum 求长度最长的的连续子序列使他们的和等于sum 返回次子序列的长度 如果没有满足要求的序列 返回-1 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 ## 输入 两行输入 第一行…...
【答疑现场】我一个搞嵌入式的,有必要学习Python吗?
【答疑现场】我一个搞嵌入式的,有必要学习Python吗? 文章目录1 写在前面2 一个结论3 Python在嵌入式领域能干啥事4 Python是用来干大事的5 友情推荐6 福利活动大家好,我是架构师李肯,一个专注于嵌入式物联网系统架构设计的攻城狮。…...
MySQL存表报错问题 Incorrect string value
MySQL存表报错问题 Incorrect string value 问题 Incorrect string value: ‘\xF0\xA8\xA5\xA5\xE5\xAD…’ for column ‘xxxxxxx’ at row 1 意思是错误的字符,常出现在添加中文字符的时候。这个问题的产生原因主要是因为一些特色中文字符或者Emoji表情占4个字…...
SAP ABAP DIALOG长文本编辑框
1. 在SCREEN100 中创建一个定制控制(容器),命名为PP *&---------------------------------------------------------------------* *& Report ZTEST_TEXT *& *&---------------------------------------------------------------------* *& *…...
电子技术——负反馈特性
电子技术——负反馈特性 本节我们进一步深入介绍负反馈特性。 增益脱敏性 假设 β\betaβ 是一个常数。考虑下面的微分方程: dAfdA(1Aβ)2dA_f \frac{dA}{(1 A\beta)^2} dAf(1Aβ)2dA 将上式除以 AfA1AβA_f \frac{A}{1A\beta}Af1AβA 得到࿱…...
网站移动端性能优化方法
移动端优化 click 的 300ms 延迟响应 click 的 300ms 延迟是由双击缩放(double tap to zoom)所导致的,由于用户可以进行双击缩放或者双击滚动的操作,当用户一次点击屏幕之后,浏览器并不能立刻判断用户是确实要打开这个链接,还是想要进行双击操作。因此,移动端浏览器就等…...
2023年AI语音会议汇总
2023年,AI语音领域学术会议精彩纷呈,语音之家汇总了国内外重要的会议呈现给大家,大家可根据时间统筹安排好2023年的学术活动交流行程。如果信息有误,欢迎指正。 ICASSP 2023 2023 IEEE International Conference on Acoustics, S…...
Mybatis持久层框架 | Mapper加载方式、目录结构解析
💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Mapper(resource、class、package)加载方式 resource方式加载 通过resource或url加载单个mapper,接口文件与映射文件不在同一路径下,只能用re…...
九龙证券|创业板向未盈利企业敞开大门 考验投行估值定价能力
未盈余企业上市有了新选择。2月17日,全面实行股票发行注册制相关准则规矩发布施行。深交所发布《深圳证券交易所创业板股票上市规矩(2023年修订)》及《关于未盈余企业在创业板上市相关事宜的告诉》,“预计市值不低于50亿元&#x…...
「TCG 规范解读」第12章 TPM工作组 TCG身份验证研讨
可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…...
Logstash:在 Logstash 管道中的定制的 Elasticsearch update by query
我们知道 Elasticsearch output plugin 为我们在 Logstash 的 pipeline 中向 Elasticsearch 的写入提供了可能。我们可以使用如下的格式向 Elasticsearch 写入数据: elasticsearch {hosts > ["https://localhost:9200"]index > "data-%{YYYY.M…...
Spring Cloud Kubernetes环境下使用Jasypt
前言最近半年着手开始做了基于微服务的中台项目,整个项目的技术栈采用的是Java Spring Cloud Kubernetes Istio。业务开放上还是相当顺利的。但是在安全审核上,运维组提出了一个简易。现在项目一些敏感配置,例如MySQL用户的密码࿰…...
Kotlin-面向对象
本片博客主要写创建对象,创建接口,创建抽象类,data关键字的作用 创建对象 如何声明一个对象,使用class关键字 格式为: class 对象名字(对象属性名:属性类型…){} 如果对象没有函数…...
循环、函数、对象——js基础练习
目录 一、循环练习 1.1 取款机案例 1.2 九九乘法表 1.3 根据数据生成柱形图 1.4 冒泡排序 1.6综合大练习 二、函数 2.1 转换时间案例 三、对象 1. 遍历数组对象 2. 猜数字游戏 3. 生成随机颜色 4. 学成在线页面渲染案例 一、循环练习 1.1 取款机案例 // 准备一个…...
精确控制 AI 图像生成的破冰方案,ControlNet 和 T2I-Adapter
ControlNet 和 T2I-Adapter 的突破性在哪里?有什么区别?其它为 T2I 扩散模型施加条件引导的相关研究ControlNet 和 T2I-Adapter 的实际应用效果如何?使用体验上,跟 SD原生支持的 img2img 有什么区别?ControlNet 在插画…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
