当前位置:   article > 正文

⭐App爬虫系列⭐:获取王者荣耀全英雄的名称、类型、热度、胜率、登场率、Ban率_王者英雄胜率api

王者英雄胜率api


前言

本次爬取为App爬虫入门案例,不进行过多复杂操作,旨在快速入门!!!

爬取目标: 王者荣耀全英雄的名称、类型、热度、胜率、登场率、Ban率

部分截图如下:

在这里插入图片描述


数据分析

打开App
在这里插入图片描述

进入首页(需要登陆)

在这里插入图片描述

选择英雄,点击全部
在这里插入图片描述

在这里插入图片描述

请求头

在这里插入图片描述
请求头信息详解

在这里插入图片描述

请求体

在这里插入图片描述

对JSON数据进行在线解析
在这里插入图片描述

所需全部数据在data下的list中
在这里插入图片描述

英雄的名称、类型、热度、胜率、登场率、Ban率

在这里插入图片描述

可见数据是我们想要的

在这里插入图片描述

完整代码

import requests
import json
import xlsxwriter as xw
import os

headers = {
    "Host": "ssl.kohsocialapp.qq.com:10001",
    "Connection": "keep-alive",
    "Content-Length": "1068",
    "Origin": "https://camp.qq.com",
    "User-Agent": "Mozilla/5.0 (Linux; Android 5.1.1; TAS-AN00 Build/TAS-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36;GameHelper; smobagamehelper; Brand: HUAWEI TAS-AN00$",
    "X-Client-Proto": "https",
    "Accept": "application/json, text/plain, */*",
    "noencrypt": "1",
    "Content-Type": "application/x-www-form-urlencoded",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
    "X-Requested-With": "com.tencent.gamehelper.smoba"
}


url = "https://ssl.kohsocialapp.qq.com:10001/hero/getdetailranklistbyid"

data = {
    "userId": "1835412780",
    "openid": "oFhrws9p-nFsxqRsGu94Lwhp0xck",
    "source": "smoba_zhushou",
    "msdkToken": "" #自己查看填写
}

response = requests.post(url=url, headers=headers, data=data)

details = json.loads(response.text)

lists = details['data']['list']


work = xw.Workbook("./res.xlsx") # 不存在就创建,存在就报错

# 新建工作表
sheet = work.add_worksheet("one")
sheet.write(0, 0, "名称")
sheet.write(0, 1, "类型")
sheet.write(0, 2, "热度")
sheet.write(0, 3, "胜率")
sheet.write(0, 4, "登场率")
sheet.write(0, 5, "Ban率")

cur = 0

for i in lists:
    name = i['heroInfo'][0]['heroName']
    type = i['heroInfo'][0]['heroCareer']
    winRate = format(float(i['winRate']) * 100, '.2f') + "%"
    showRate = format(float(i['showRate']) * 100, '.2f') + "%"
    banRate = format(float(i['banRate']) * 100, '.2f') + "%"
    tRank = i['tRank']
    sheet.write(cur, 0, name)
    sheet.write(cur, 1, type)
    sheet.write(cur, 2, tRank)
    sheet.write(cur, 3, winRate)
    sheet.write(cur, 4, showRate)
    sheet.write(cur, 5, banRate)
    cur += 1

# 关闭
work.close()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68


最后

我是 Code皮皮虾,一个热爱分享知识的 皮皮虾爱好者,未来的日子里会不断更新出对大家有益的博文,期待大家的关注!!!

创作不易,如果这篇博文对各位有帮助,希望各位小伙伴可以一键三连哦!,感谢支持,我们下次再见~~~

分享大纲

大厂面试题专栏


Java从入门到入坟学习路线目录索引


开源爬虫实例教程目录索引

更多精彩内容分享,请点击 Hello World (●’◡’●)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/931220
推荐阅读
相关标签
  

闽ICP备14008679号