python爬蟲看看虎牙女主播中誰最“頂”步驟詳解
網(wǎng)頁鏈接:https://www.huya.com/g/4079
這里的主要步驟其實還是和我們之前分析的一樣,如下圖所示:

這里再簡單帶大家看一下就行,重點是我們的第二部分。

既然網(wǎng)頁結(jié)構(gòu)我們已經(jīng)分析完了,那么我還是選擇用之前的xpath來爬取我們所需要的資源。
# 獲取所有的主播信息
def getDatas(html):
datalist=[]
parse=parsel.Selector(html)
lis=parse.xpath('//li[@class="game-live-item"]').getall()
# print(lis)
for li in lis:
data = []
parse1=parsel.Selector(li)
img_src=parse1.xpath('//img[@class="pic"]/@data-original').get("data")
data.append(img_src)
title=parse1.xpath('//i[@class="nick"]/@title').get("data")
data.append(title)
redu=parse1.xpath('//i[@class="js-num"]/text()').get("data")
data.append(redu)
datalist.append(data)
return datalist
這樣我們就能獲取到我們所需要的所有資源,之后將圖片保存下來即可。這其中有兩種文件的下載方式,一種是通過 with open打開文件的方式 ,另外一種就是通過 urllib.request.urlretrieve(data,path) 的方法,網(wǎng)上說第二種方式的下載速度會相對快一點,并且第二種有點 set 集合的意思,可以自動進(jìn)行 去重 的操作,下載的文件夾中沒有該文件就下載,否則就跳過。
#保存主播頭像
def download(datalist):
for data in datalist:
#第一種下載方式
with open("D:/software/python/python爬蟲/虎牙顏值主播排名/", 'wb') as f:
f.write(data[0])
#第二種下載方式
urllib.request.urlretrieve(data[0],"D:/software/python/python爬蟲/虎牙顏值主播排名"+"/"+data[1]+".jpg")
print(data[1]+"下載完成")
百度人臉識別接口
百度AI開放平臺鏈接:https://ai.baidu.com/

輸入相應(yīng)的應(yīng)用名稱以及簡介即可。

這樣我們的應(yīng)用就算創(chuàng)建完畢了。選中的部分也是我們接下來會用到的。

之后我們先去看一下sdk文件

看使用說明即可,不用著急下載,之后我們直接在pycharm中安裝模塊就行。

之后我們來看一下簡單的操作流程首先先創(chuàng)建客戶端:

之后我們就是調(diào)用接口解析圖片,因為我們需要返回顏值分?jǐn)?shù)這一個參數(shù),所以還需要帶參數(shù)進(jìn)行請求,否則無法將分?jǐn)?shù)信息返回給我們。如下圖:


這樣我們顏值檢測的接口流程基本就已經(jīng)理清楚了,代碼如下:
def face_rg(file_path):
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
with open(file_path,'rb')as file:
data=base64.b64encode(file.read())
image=data.decode()
imageType = "BASE64"
""" 如果有可選參數(shù) """
options = {}
options["face_field"] = "beauty"
""" 帶參數(shù)調(diào)用人臉檢測 """
result=client.detect(image, imageType, options)
# print(result)
return result['result']['face_list'][0]['beauty']
之后我們就只需要編寫一個遍歷文件夾下面的圖片進(jìn)行檢測,之后將整個信息按照顏值分?jǐn)?shù)進(jìn)行降序排列:
path=r"D:\software\python\python爬蟲\虎牙顏值主播排名"
image_list=os.listdir(path)
name_score={}
for image in image_list:
try:
print(image.split(".")[0]+"顏值評分為:%d"%face_rg(path+"/"+image))
name_score[image.split(".")[0]]=face_rg(path+"/"+image)
except:
pass
second_score=sorted(name_score.items(),key=lambda x:x[1],reverse=True)
print("-------------------------------------檢測結(jié)束-------------------------------------")
print("-------------------------------------以下是排名-------------------------------------")
for a,b in enumerate(second_score):
print("{}的顏值評分為:{},排名第{}".format(second_score[a][0],second_score[a][1],a+1))
這里博主測完自己的顏值是 52分,連及格線都沒到 ,大家也可以在評論區(qū)說說自己的分?jǐn)?shù)。

效果演示


到此這篇關(guān)于python爬蟲看看虎牙女主播中誰最“頂”的文章就介紹到這了,更多相關(guān)python爬蟲虎牙女主播內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)圖像處理之PiL依賴庫的案例應(yīng)用詳解
這篇文章主要介紹了python實現(xiàn)圖像處理之PiL依賴庫的案例應(yīng)用詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題
這篇文章主要介紹了解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
python3 cvs將數(shù)據(jù)讀取為字典的方法
今天小編就為大家分享一篇python3 cvs將數(shù)據(jù)讀取為字典的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
tensorflow之變量初始化(tf.Variable)使用詳解
今天小編就為大家分享一篇tensorflow之變量初始化(tf.Variable)使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

