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翻译软件实现代码(使用google api完成)
Nov 26 Python
Python使用Flask框架获取当前查询参数的方法
Mar 21 Python
Python中用于去除空格的三个函数的使用小结
Apr 07 Python
python使用PyGame模块播放声音的方法
May 20 Python
Python连接SQLServer2000的方法详解
Apr 19 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
详解python中的hashlib模块的使用
Apr 22 Python
Python绘制动态水球图过程详解
Jun 03 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
python try...finally...的实现方法
Nov 25 Python
jupyter 添加不同内核的操作
Feb 06 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
Python实现简单HTML表格解析的方法
2015/06/15 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
pandas数据拼接的实现示例
2020/04/16 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
如何验证python安装成功
2020/07/06 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
EJB timer的种类
2014/10/28 面试题
施工安全协议书
2013/12/11 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
教师考核材料
2014/05/21 职场文书
单位接收函范文
2015/01/30 职场文书
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL