python爬虫看看虎牙女主播中谁最“顶”步骤详解
作者:萌萌哒的瓤瓤 发布时间:2022-03-31 09:30:33
网页链接:https://www.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开放平台链接:https://ai.baidu.com/
输入相应的应用名称以及简介即可。
这样我们的应用就算创建完毕了。选中的部分也是我们接下来会用到的。
之后我们先去看一下sdk文件
看使用说明即可,不用着急下载,之后我们直接在pycharm中安装模块就行。
之后我们来看一下简单的操作流程首先先创建客户端:
之后我们就是调用接口解析图片,因为我们需要返回颜值分数这一个参数,所以还需要带参数进行请求,否则无法将分数信息返回给我们。如下图:
这样我们颜值检测的接口流程基本就已经理清楚了,代码如下:
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=lambda 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分,连及格线都没到 ,大家也可以在评论区说说自己的分数。
效果演示
来源:https://blog.csdn.net/lovely__RR/article/details/108179028
猜你喜欢
- 目录1、创建相关新应用2、获取Access Token3、分析评论并进行观点抽取4、运行结果利用百度API自然语言处理技术中的评论观点抽取方
- 本文实例讲述了Python实现的简单hangman游戏。分享给大家供大家参考。具体如下:#!/usr/bin/env pythonimpor
- 一、分屏展示当你想同时看到多个文件的时候:右击标签页;选择 move right 或者 split vertical;效果:二、远程 Pyt
- 一. 安装 Beautiful Soup首先,您需要安装 Beautiful Soup。在终端或命令提示符中运行以下命令:pip insta
- 99bill: 1.md5.asp 代码如下:<% '''''''&
- 本文实例讲述了PHP完全二叉树定义与实现方法。分享给大家供大家参考,具体如下:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1)
- 前言最近,我已经成功将我的个人网站从 Flask 迁移到 Django 了,最早接触 Django 的时候大概是在 4 年前,我记得那个时候
- 本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:示例代码# -*- co
- 本文实例讲述了python实现unicode转中文及转换默认编码的方法。分享给大家供大家参考,具体如下:一、在爬虫抓取网页信息时常需要将类似
- 运行效果:完整源码:##import libraryfrom tkinter import *import timefrom playsou
- 一. 网页挂马的概念: 网页挂马是指:在获取网站或者网站服务器的部分或者全部权限后,在网
- 小小程序猿SQL Server认知的成长 1.没毕业或工作没多久,只知道有数据库、SQL这么个东东,浑然分不清SQL和Sql Server
- 现在有一个xml,格式如下: <date> <item> <id> 1 </id> <
- 前言之前做了一个校园交友的APP,其中一个逻辑是通过用户的教务系统来确认用户是一名在校大学生,基本的想法是通过用户的账号和密码,用爬虫的方法
- 把这两个很普遍性的网友比较关心的问题总结回答一下。in和exist的区别从sql编程角度来说,in直观,exists不直观多一个select
- 如何在数据库中限制检索行数?为了照顾显示器屏幕的大小,使检索结果更整齐明了一些,请问,可以控制数据库的检索行数吗? &
- Python# coding=utf-8import timeimport sysdef func(): # 格式化输出时间 &
- 之前就见过很多网站在侧边栏上使用<dl />标签对来完成侧边栏栏目的布局,最近在研究DEDECMS的默认模板时,也发现该模板在大
- 使用xlwt读取txt文件内容,并且写入到excel中,代码如下,已经加了注释。代码简单,具体代码如下:# coding=utf-8'
- 1.首先,我们需要过滤所有客户端提交的内容,其中包括?id=N一类,另外还有提交的html代码中的操作数据库的select及asp文件操作语