python爬蟲看看虎牙女主播中誰最「頂」步驟詳解

2022-09-30 00:54:10 字數 3020 閱讀 8349

網頁鏈結:https://ww程式設計客棧w.huya.com/g/4079

這裡的主要步驟其實還是和我們之前分析的一樣,如下圖所示:

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

既然網頁結構我們已經分析完了,那麼我還是選擇用之前的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)的方法,網上說第二種方式的**速度會相對快一點,並且第二種有點set集合的意思,可以自動進行去重的操作,**的資料夾中沒有該檔案就**,否則就跳過。

#儲存主播頭像

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開放平台鏈結:

輸入相應的應用名稱以及簡介即可。

這樣我們的應用就算建立完畢了。選中的部分也是我們接下來會用到的。

之後我們先去看一下sdk檔案

看使用說明即可,不用著急**,之後我們直接在pycharm中安裝模組就行。

之後我們來看一下簡單的操作流程首先先建立客戶端:

之後我們就是呼叫介面解析,因為我們需要返回顏值分數這乙個參bxkbbbl數,所以還需要帶引數進行請求,否則無法將分數資訊返回給我們。如下圖:

這樣我們顏值檢測的介面流程基本就已經理清楚了,**如下:

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"

""" 如果有可選引數 """

options = {}

options["face_field"] = "beauty"

""" 帶引數呼叫人臉檢測 """

result=client.detect(image, imagetype, options)

# print(result)

return result['result']['face_list'][0]['beauty']

之程式設計客棧後我們就只需要編寫乙個遍歷資料夾下面的進行檢測,之後將整個資訊按照顏值分數進行降序排列:

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=lambd程式設計客棧a x:x[1],reverse=true)

print("-------------------------------------檢測結束-------------------------------------")

print("-------------------------------------以下是排名-------------------------------------")

for a,b in enumerate(second_score):

print("{}的顏值評分為:{},排名第{}".format(second_score[a][0],second_score[a][1],a+1))

這裡博主測完自己的顏值是52分,連及格線都沒到,大家也可以在評論區說說自己的分數。

效果演示

Python爬蟲 看看虎牙女主播中誰最「頂」!

這裡再簡單帶大家看一下就行,重點是我們的第二部分。既然網頁結構我們已經分析完了,那麼我還是選擇用之前的xpath來爬取我們所需要的資源。獲取所有的主播資訊 def getdatas html datalist parse parsel.selector html lis parse.xpath li...

python爬蟲 看看虎牙女主播中誰最「頂」

長按點贊,等你來幹!這裡的主要步驟其實還是和我們之前分析的一樣,如下圖所示 這裡再簡單帶大家看一下就行,重點是我們的第二部分。既然網頁結構我們已經分析完了,那麼我還是選擇用之前的xpath來爬取我們所需要的資源。獲取所有的主播資訊 defgetdatas html datalist parse pa...

python3爬蟲虎牙星秀

準備工具 python3.5.x 和 pycharm 安裝 beautifulsoup4 這個包 import requests from bs4 import beautifulsoup import re from urllib import request import time url 要爬...