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程序设计入门(2)变量类型简介
Jun 16 Python
在Python中使用next()方法操作文件的教程
May 24 Python
Python构建XML树结构的方法示例
Jun 30 Python
详解python函数传参是传值还是传引用
Jan 16 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
python实现猜数字小游戏
Mar 24 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
Python3 集合set入门基础
Feb 10 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
golang中的空接口使用详解
Mar 30 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添加MySQL数据记录代码
2008/06/07 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
php浏览历史记录的方法
2015/03/10 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
javascript中对变量类型的判断方法
2015/08/09 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python实现简单多线程任务队列
2016/02/27 Python
python编写分类决策树的代码
2017/12/21 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
Python项目打包成二进制的方法
2020/12/30 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
葬礼司仪主持词
2014/03/31 职场文书
小学语文业务学习材料
2014/06/02 职场文书
辞职信格式模板
2015/02/27 职场文书
工作自我评价范文
2015/03/05 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
纪检监察立案决定书
2015/06/24 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android