【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 在插画…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
