天天看點

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

導語

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

民間一直有個傳聞......「聽說某站的小哥哥小姐姐顔值都很高哦!」

(不是顔值高才能加入,是優秀的人恰好顔值高)

所有文章完整的素材+源碼都在👇👇

粉絲白嫖源碼福利,請移步至CSDN社群或文末公衆hao即可免費。

木木子當然不負衆望,今天就火速帶你們走進某站,看看那些超高顔值的主播們的大比拼,誰

才是你心目中的第一呢?

深度解析的那些高顔值主播們。快看!滿眼全是高顔值主播,愛了愛了鴨!

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

今天小編就用 Python實作人臉識别檢測, 對某平台美女主播照片進行評分排名啦~看看那些主播

們,真的是高顔值主播嘛??

【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 tqdm


def 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 為官網擷取的SK
    host = '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_token
    headers_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 num
    except:
        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)
           

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結
五、效果展示

1)資料下載下傳

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

​2)儲存資料

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

3)人臉檢測

圖檔資料下載下傳之後進行人臉檢測排名,第一步調用api接口。

登入百度雲賬号——控制台——人臉識别。

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

下一步建立應用。

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

下一步實名免費領取,具體怎麼使用可以去技術文檔檢視即可,不會的可以找我拿視訊教程一

步一步來哈。

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

4)顔值排名

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

5)排名前三主播

【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結
【Python實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結

總結

好啦,大家覺得排名前三的女主播顔值誰最好看呢?你能打多少分啦,這顔值是你的款蠻~

高顔值主播強勢來襲,趕緊為你喜歡的高顔值小哥哥小姐姐打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實戰】一大波高顔值主播來襲:快看,某網站顔值排名,為了這個排名我可是大費周章啦,第一名不虧是你...(人臉檢測+爬蟲實戰)導語​正文總結