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 相关文章推荐
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
Python random模块用法解析及简单示例
Dec 18 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
值得收藏的10道python 面试题
Apr 15 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
Python企业编码生成系统之系统主要函数设计详解
Jul 26 Python
python-web根据元素属性进行定位的方法
Dec 13 Python
np.random.seed() 的使用详解
Jan 14 Python
python统计文章中单词出现次数实例
Feb 27 Python
pytorch 查看cuda 版本方式
Jun 23 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
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
django Serializer序列化使用方法详解
2018/10/16 Python
python生成lmdb格式的文件实例
2018/11/08 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
美国网上书店:Barnes & Noble
2018/08/15 全球购物
采购意向书范本
2014/03/31 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
纪录片信仰观后感
2015/06/08 职场文书