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

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

开发环境:

  • Python 3.8

  • Pycharm 2021.2

模块使用:

第三方模块

  • 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)

解决方法:

  1. 先获取文本数据 response.text

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

  2. 当你看到返回的数据 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)

效果

检测代码

# 数据请求模块 --> 第三方模块 需要安装 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是什么?工作前景如何?怎么算有基础?爬数据违法嘛?。。

python数据分析前景:

用python分析“数据分析”到底值不值得学习,以及学完之后大概能拿到多少工资

python基础自测题:

Python 800 道习题 (°ー°〃) 测试你学废了嘛

最后推荐一套Python视频给大家,希望对大家有所帮助:

全套教程!你和大佬只有一步之遥【python教程】

尾语

好了,今天的分享就差不多到这里了!

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容