python爬虫看看虎牙女主播中谁最“顶”步骤详解


Posted in Python onDecember 01, 2020

网页链接:https://www.huya.com/g/4079
这里的主要步骤其实还是和我们之前分析的一样,如下图所示:

python爬虫看看虎牙女主播中谁最“顶”步骤详解

这里再简单带大家看一下就行,重点是我们的第二部分。

python爬虫看看虎牙女主播中谁最“顶”步骤详解

既然网页结构我们已经分析完了,那么我还是选择用之前的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/

python爬虫看看虎牙女主播中谁最“顶”步骤详解

输入相应的应用名称以及简介即可。

python爬虫看看虎牙女主播中谁最“顶”步骤详解

这样我们的应用就算创建完毕了。选中的部分也是我们接下来会用到的。

python爬虫看看虎牙女主播中谁最“顶”步骤详解

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

python爬虫看看虎牙女主播中谁最“顶”步骤详解

看使用说明即可,不用着急下载,之后我们直接在pycharm中安装模块就行。

python爬虫看看虎牙女主播中谁最“顶”步骤详解

之后我们来看一下简单的操作流程首先先创建客户端:

python爬虫看看虎牙女主播中谁最“顶”步骤详解

之后我们就是调用接口解析图片,因为我们需要返回颜值分数这一个参数,所以还需要带参数进行请求,否则无法将分数信息返回给我们。如下图:

python爬虫看看虎牙女主播中谁最“顶”步骤详解

python爬虫看看虎牙女主播中谁最“顶”步骤详解

这样我们颜值检测的接口流程基本就已经理清楚了,代码如下:

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分,连及格线都没到 ,大家也可以在评论区说说自己的分数。

python爬虫看看虎牙女主播中谁最“顶”步骤详解

效果演示

python爬虫看看虎牙女主播中谁最“顶”步骤详解
python爬虫看看虎牙女主播中谁最“顶”步骤详解

到此这篇关于python爬虫看看虎牙女主播中谁最“顶”的文章就介绍到这了,更多相关python爬虫虎牙女主播内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
介绍Python的@property装饰器的用法
Apr 28 Python
python修改字典内key对应值的方法
Jul 11 Python
Python的Django框架中URLconf相关的一些技巧整理
Jul 18 Python
python实现输入数字的连续加减方法
Jun 22 Python
Python 异步协程函数原理及实例详解
Nov 13 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
使用 Supervisor 监控 Python3 进程方式
Dec 05 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
python logging 日志的级别调整方式
Feb 21 Python
Python实现计算图像RGB均值方式
Jun 04 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
Python下使用Trackbar实现绘图板
Oct 27 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 #Python
使用python爬取抖音app视频的实例代码
Dec 01 #Python
基于Python实现粒子滤波效果
Dec 01 #Python
Django集成MongoDB实现过程解析
Dec 01 #Python
基于Django快速集成Echarts代码示例
Dec 01 #Python
Python更改pip镜像源的方法示例
Dec 01 #Python
Python读取图像并显示灰度图的实现
Dec 01 #Python
You might like
如何在PHP程序中防止盗链
2008/04/09 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
PHP 透明水印生成代码
2012/08/27 PHP
JavaScript中的事件处理
2008/01/16 Javascript
js select option对象小结
2013/12/20 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
使用python 获取进程pid号的方法
2014/03/10 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
Python 转义字符详细介绍
2017/03/21 Python
Python3 socket同步通信简单示例
2017/06/07 Python
python3实现简单飞机大战
2020/11/29 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
专科毕业生自我鉴定
2013/12/01 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
统计学教授推荐信
2014/09/18 职场文书
爱心募捐感谢信
2015/01/22 职场文书
研究生个人学年总结
2015/02/14 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
学术会议开幕词
2016/03/03 职场文书
SQLServer之常用函数总结详解
2021/08/30 SQL Server