最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用python寫個(gè)顏值評(píng)分器篩選最美主播

 更新時(shí)間:2021年08月26日 17:16:59   作者:Dragon少年  
這篇文章主要介紹了我如何用python寫顏值評(píng)分器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言

晚上回家閑來無事,想打開某直播平臺(tái),看看小姐姐直播??粗粋€(gè)個(gè)多才多藝的小姐姐,眼花繚亂,好難抉擇。究竟看哪個(gè)小姐姐直播好呢?

今天我們就一起來做個(gè)顏值評(píng)分器,爬取小姐姐們的直播照片,對(duì)每位小姐姐的顏值進(jìn)行打分排序,選出最靚的star。

一、核心功能設(shè)計(jì)

總體來說,我們需要做的是獲取直播顏值區(qū)的主播小姐姐的正在直播的全部主播名稱和封面圖并保存下來,用百度AI提供的人臉識(shí)別接口,進(jìn)行顏值評(píng)分排序,選出顏值最高的。

拆解需求,大致可以整理出核心功能如下:

獲取主播直播封面圖

  • 打開直播顏值區(qū)模塊對(duì)頁面進(jìn)行分析
  • 發(fā)送網(wǎng)絡(luò)請(qǐng)求,解析數(shù)據(jù)
  • 保存數(shù)據(jù)

主播顏值評(píng)分

  • 百度人臉識(shí)別接口
  • 遍歷主播照片,調(diào)用顏值檢測(cè)接口對(duì)主播顏值進(jìn)行打分
  • 對(duì)評(píng)分進(jìn)行排序

二、實(shí)現(xiàn)步驟

1. 獲取主播名稱和照片

首先我們選擇的是某牙直播,進(jìn)入首頁打開顏值區(qū),按F12可以進(jìn)入開發(fā)者模式。

import requests
# 1.找到數(shù)據(jù)所在url地址(系統(tǒng)分析網(wǎng)頁性質(zhì))
url = "https://www.huya.com/g/2168"
headers = {
        'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                      '(KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
    }

# 2. 發(fā)送網(wǎng)絡(luò)請(qǐng)求
response = requests.get(url=url, headers=headers)
html_data = response.text
print(html_data)

不難發(fā)現(xiàn)所有的小姐姐直播封面對(duì)應(yīng)的都是在li標(biāo)簽里面。我們只要解析獲取這些li標(biāo)簽數(shù)據(jù)就可以了。

在這里插入圖片描述

接著我們需要拿到直播小姐姐的封面圖片,通過分析上面li標(biāo)簽里面的內(nèi)容,可以發(fā)現(xiàn)下面有個(gè)a標(biāo)簽,里面的img標(biāo)簽中的data-original不就是我們要的小姐姐圖片嘛!

在這里插入圖片描述

接下來我們想要獲取主播小姐姐的名字怎么辦呢?點(diǎn)開li標(biāo)簽繼續(xù)分析,可以看到下面有個(gè)span標(biāo)簽,其中的i標(biāo)簽內(nèi)容就是小姐姐直播的名字。

在這里插入圖片描述

網(wǎng)頁結(jié)構(gòu)我們上面已經(jīng)分析好了,那么我們就可以來動(dòng)手爬取我們所需要的數(shù)據(jù)了。獲取到所有的數(shù)據(jù)資源之后,把圖片保存下來即可。文件的下載保存的方式比較多,我用的是通過 with open打開文件的方式 ,比較簡(jiǎn)單。

# 3. 數(shù)據(jù)解析
selector = parsel.Selector(html_data)
lis = selector.xpath('//li[@class="game-live-item"]')  # 所有l(wèi)i標(biāo)簽

for li in lis:
    img_name = li.xpath('.//span[@class="avatar fl"]/i/text()').get()  # 主播名字
    img_url = li.xpath('.//a/img/@data-original').get()  # 主播圖片地址
    # print(img_name, img_url)

    # 請(qǐng)求圖片數(shù)據(jù)
    img_data = requests.get(url=img_url).content  # 圖片數(shù)據(jù)

    # 4. 數(shù)據(jù)保存
    # 準(zhǔn)備文件名
    file_name = img_name + '.jpg'
    with open('img\\' + file_name, mode='wb') as f:
        f.write(img_data)
        print('正在保存:', file_name)

這樣小姐姐的直播名稱和照片都可以保存下來了,效果如下:

在這里插入圖片描述

2. 主播顏值評(píng)分

我們調(diào)用的是百度開放的人臉識(shí)別接口百度AI開放平臺(tái)鏈接。

在這里插入圖片描述

這里面我們可以創(chuàng)建一個(gè)人臉識(shí)別應(yīng)用,其中的API Key及Secret Key后面我們調(diào)用人臉識(shí)別檢測(cè)接口時(shí)會(huì)用到。

在這里插入圖片描述

接下來我們可以看看官方提供的API幫助文檔,里面介紹的很詳細(xì)。包括如何調(diào)用請(qǐng)求URL數(shù)據(jù)格式,向API服務(wù)地址使用POST發(fā)送請(qǐng)求,必須在URL中帶上參數(shù)access_token,可通過后臺(tái)的API Key和Secret Key生成。這里面的API Key和Secret Key就是我們上面提到的。

在這里插入圖片描述

那我們要的打分顏值分?jǐn)?shù)是哪個(gè)呢?提供返回結(jié)果參數(shù),可以看到里面有個(gè)beauty就是我們要的顏值分?jǐn)?shù)。

在這里插入圖片描述

這樣顏值檢測(cè)的接口流程基本就已經(jīng)清楚了,可以進(jìn)行代碼實(shí)現(xiàn)了。

其中獲取token的時(shí)候,需要用到client_id 和 client_secret ,這兩個(gè)就是上面創(chuàng)建人臉識(shí)別應(yīng)用時(shí)提供的。

import base64
import requests
# import pprint


# 獲取token
def get_token():
    # client_id 為官網(wǎng)獲取的AK, client_secret 為官網(wǎng)獲取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官網(wǎng)獲取的AK】&client_secret=【官網(wǎng)獲取的SK】'
    response = requests.get(host)
    if response:
        # print(response.json())
        return response.json()['access_token']


# 顏值檢測(cè)接口
def face_input(file_path):
    with open(file_path, 'rb') as file:
        data = base64.b64encode(file.read())
    img = data.decode()
    request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"

    params = "{\"image\":\"%s\",\"image_type\":\"BASE64\",\"face_field\":\"beauty\"}" % img
    access_token = get_token()
    request_url = request_url + "?access_token=" + access_token
    headers = {'content-type': 'application/json'}
    response = requests.post(request_url, data=params, headers=headers)
    if response:
        beauty = response.json()['result']['face_list'][0]['beauty']
        # pprint.pprint(response.json())
        return beauty

可以看到result字段里面的beauty就是代表對(duì)小姐姐的顏值評(píng)分。效果如下:

在這里插入圖片描述

調(diào)用顏值檢測(cè)接口已經(jīng)寫好了,下面我們要遍歷之前保存的所有小姐姐直播照片,對(duì)每個(gè)進(jìn)行顏值打分。

path = './img'
img_list = os.listdir(path)
# print(img_list)
score_dict ={}

for img in img_list:
    try:
        # 提取主播名字
        name = img.split('.')[0]
        # 構(gòu)建圖片路徑
        img_path = path + '//' + img
        # 調(diào)用顏值檢測(cè)接口
        face_score = face_input(img_path)
        # print(face_score)
        score_dict[name] = face_score
    except:
        print(f'正在檢測(cè){name}| 檢測(cè)失敗')
    else:
        print(f'正在檢測(cè){name}| \t\t 顏值打分為:{face_score}')

最后我們就只需要按照顏值分?jǐn)?shù)進(jìn)行降序排列,就可以選出顏值最高的小姐姐啦~

sorted_score = sorted(score_dict.items(), key=lambda x: x[1], reverse=True)
# print(sorted_score)

for i, j in enumerate(sorted_score):
    print(f'小姐姐名字是:{sorted_score[i][0]} | 顏值名次是:第{i+1}名 | 顏值分?jǐn)?shù)是:{sorted_score[i][1]}')

通過顏值檢測(cè),這樣就可以找到顏值最高的小姐姐了,顏值打分有90分以上。今天我們就到這里,明天繼續(xù)努力!不說了,趕緊看直播去~

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

如果本篇博客有任何錯(cuò)誤,請(qǐng)批評(píng)指教,不勝感激 !

到此這篇關(guān)于用python寫個(gè)顏值評(píng)分器篩選最美主播的文章就介紹到這了,更多相關(guān)python顏值評(píng)分器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用openpyxl復(fù)制整張sheet

    Python使用openpyxl復(fù)制整張sheet

    這篇文章主要介紹了Python使用openpyxl復(fù)制整張sheet,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Django logging配置及使用詳解

    Django logging配置及使用詳解

    這篇文章主要介紹了Django logging配置及使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python實(shí)現(xiàn)用networkx繪制MultiDiGraph

    Python實(shí)現(xiàn)用networkx繪制MultiDiGraph

    這篇文章主要介紹了Python實(shí)現(xiàn)用networkx繪制MultiDiGraph方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 通過conda把已有虛擬環(huán)境的python版本進(jìn)行降級(jí)操作指南

    通過conda把已有虛擬環(huán)境的python版本進(jìn)行降級(jí)操作指南

    當(dāng)使用conda創(chuàng)建虛擬環(huán)境時(shí),有時(shí)候可能會(huì)遇到python版本不對(duì)的問題,下面這篇文章主要給大家介紹了關(guān)于如何通過conda把已有虛擬環(huán)境的python版本進(jìn)行降級(jí)操作的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • Python Flask前端自動(dòng)登錄功能實(shí)現(xiàn)詳解

    Python Flask前端自動(dòng)登錄功能實(shí)現(xiàn)詳解

    這篇文章主要介紹了Python Flask前端自動(dòng)登錄功能實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • 解決Mac下使用python的坑

    解決Mac下使用python的坑

    今天小編就為大家分享一篇解決Mac下使用python的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python Django教程之實(shí)現(xiàn)待辦事項(xiàng)應(yīng)用程序

    Python Django教程之實(shí)現(xiàn)待辦事項(xiàng)應(yīng)用程序

    Django是一個(gè)基于Python Web框架的高級(jí)Web框架,允許快速開發(fā)和干凈,務(wù)實(shí)的設(shè)計(jì)。本文將創(chuàng)建一個(gè)待辦事項(xiàng)應(yīng)用程序,以了解Django的基礎(chǔ)知識(shí),感興趣的可以嘗試一下
    2022-10-10
  • 解決Django刪除migrations文件夾中的文件后出現(xiàn)的異常問題

    解決Django刪除migrations文件夾中的文件后出現(xiàn)的異常問題

    今天小編就為大家分享一篇解決Django刪除migrations文件夾中的文件后出現(xiàn)的異常問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • matplotlib.pyplot繪圖顯示控制方法

    matplotlib.pyplot繪圖顯示控制方法

    今天小編就為大家分享一篇matplotlib.pyplot繪圖顯示控制方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實(shí)現(xiàn)的直接插入排序算法示例

    Python實(shí)現(xiàn)的直接插入排序算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的直接插入排序算法,結(jié)合實(shí)例形式分析了Python直接插入排序算法的定義與使用相關(guān)操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2018-04-04

最新評(píng)論

武安市| 凌源市| 安宁市| 天镇县| 三都| 崇州市| 湛江市| 兴化市| 西乡县| 英德市| 托克托县| 拉萨市| 衡东县| 玉树县| 响水县| 云浮市| 比如县| 来安县| 宾阳县| 云龙县| 青州市| 上思县| 华坪县| 长岭县| 分宜县| 海晏县| 天祝| 逊克县| 东兰县| 旺苍县| 黔西县| 原平市| 珲春市| 全州县| 重庆市| 普宁市| 黄龙县| 天峻县| 日喀则市| 泸水县| 施秉县|