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生成随机mac地址的方法
Mar 16 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
Python扩展内置类型详解
Mar 26 Python
python基于物品协同过滤算法实现代码
May 31 Python
详解Django 中是否使用时区的区别
Jun 14 Python
Python退火算法在高次方程的应用
Jul 26 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
Python3通过chmod修改目录或文件权限的方法示例
Jun 08 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 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 XML操作的各种方法解析(比较详细)
2010/06/17 PHP
PHP警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
python 的topk算法实例
2020/04/02 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
德国购买健身器材:AsVIVA
2017/08/09 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
秋天的雨教学反思
2014/04/27 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
面试自我评价范文
2014/09/17 职场文书
关于学习的决心书
2015/02/05 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP