一、闲言碎语
众所周知,能去直播的女主播一般都还可以,但是两三个还能肉眼分辨看看谁好看,几百个可就看不过来了吧。
那这时候python的用处就来了,对她们的照片进行自动分析打分,给她们做一个排行榜,哪个好看一目了然~
二、获取照片
既然要做排名打分,那么就得先准备图片,第一步先获取女主播图片。
1、分析目标网页
确定爬取的url路径,headers参数。
base_url = 'https://www.***.com/g/4079'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'}
**2、发送请求 ** requests 模拟浏览器发送请求,获取响应数据。
response = requests.get(url=base_url, headers=headers)
html_data = response.text
**3、解析数据 **
parsel 转化为Selector对象,Selector对象具有xpath的方法,能够对转化的数据进行处理。
parse = parsel.Selector(html_data)
data_list = parse.xpath('//li[@class="game-live-item"]')
for data in data_list:
img_url = data.xpath('./a/img/@data-original').get()
img_title = data.xpath('.//span/i/@title').get()
print(img_url, img_title)
4、保存数据
img_data = requests.get(url=img_url, headers=headers).content
file_name = img_title + '.jpg'
with open('img\\' + file_name, mode='wb') as f:
print('正在保存:', file_name)
f.write(img_data)
三、颜值检测
调用人脸接口,进行颜值检测,没有的话大家自己弄一下,我就不提供了。
如果文章看不过瘾,我给大家准备了对应的视频讲解,拉到最上面左侧就有。
def face_rg(file_Path):
""" 你的 api_id AK SK """
api_id = '19895116'
api_key = 'aR6Oytn7ycDyhjBqPYCAGgqh'
secret_key = 'dXjz8QELSaj238GuEr0I3xnarEurWhit'
client = AipFace(api_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)
return result['result']['face_list'][0]['beauty']
if __name__ == '__main__':
face_rg(r'C:\Users\admin\Desktop\练习\主播颜值检测\img\9c-专属男友.jpg')
四、颜值打分
万事具备只欠东风,打分的东风。
import os
from 主播颜值检测.颜值检测_接口 import face_rg
path = './img'
image_list = os.listdir(path)
score_dict = {}
for image in image_list:
try:
name = image.split('.')[0]
image_path = path + '\\' + image
face_score = face_rg(image_path)
score_dict[name] = face_score
except Exception as e:
print('正在检测:{}|检测失败!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'.format(str(name)))
else:
print('正在检测:{}|颜值打分为:{}'.format(str(name), str(face_score)))
print('\n===========================================检测完成===========================================')
print(score_dict.items())
change_score = sorted(score_dict.items(), key=lambda x: x[1], reverse=True)
print(change_score)
print(list(enumerate(change_score)))
for a, b in enumerate(change_score):
print('小姐姐的名字是:{}丨颜值名次是:第{}名丨她的颜值分数为:{}'.format(change_score[a][0], a+1, change_score[a][1]))
颜值打分 颜值排行 哎,到这里就成功了,兄弟们可以去试试。
记得点赞三连哇,爱你哟~
|