Python爬取王者营地战绩

前言

最近收到爬取王者荣耀战绩的单子,于是在网上一搜发现王者荣耀官方并无开放相应的接口。于是乎发现其他帖子有关于王者营地APP抓包的攻略,但是在本人实测下王者营地APP现已加入模拟器检测和证书的验证。但由于为了单纯对王者营地进行逆向有点太费精力。所以把目标转向微信小程序,结果微信小程序也加入了证书的验证,无法抓包。但是还有QQ小程序,皇天不负有心人,终于可以抓出正常的结果。

工具

Python

Mitmproxy/Clarles/Fidder或者其他抓包工具 (本文用的是mitmproxy)

具体配置就不提及了,其他渠道都可以搜到。

采集

 连接网络设置代理,服务器主机名为自己电脑的ip地址,端口号随便写

在terminal中输入(端口号是刚刚随便写的那个)

mitmweb -p 8888

打开QQ中王者营地小程序,打开个人战绩。

 在mitmweb中找到https://kohcamp.qq.com/game/morebattlelist,返回的json是存储个人战绩的,抓包成功。

可以看到assistcnt表示助攻,killcnt表示击杀, deadcnt表示死亡,heroId表示使用的英雄,gametime表示时间

那么只要开始写一个脚本配合mitmproxy抓包就可以

import json
def response(flow):
    if'game/morebattlelist' in flow.request.url:

        for content in json.loads(flow.response.text)['data']['list']:
            content_info = {}
            content_info['killcnt']=content['killcnt']
            content_info['deadcnt'] = content['deadcnt']
            content_info['assistcnt'] = content['assistcnt']
            content_info['gametime'] = content['gametime']
            content_info['heroId'] = content['heroId']

            print(content_info)
            with open('game_wzyd.txt','a',encoding='utf-8') as f:
                f.write(json.dumps(content_info,ensure_ascii=False))
                f.write('\n')

在terminal中cd到程序所在的文件夹,再输入

mitmdump -s 你的程序名 -p 8888

 成功采集,如图所示:

另外,如果想要爬取 单场对局的具体数据在https://kohcamp.qq.com/role/h5getplaydetail中,同样的操作,不再赘述,不过要搭配appium或者airtest自动化。

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: Python可以通过使用网络爬虫技术来获取玩家在王者荣耀营地战绩信息。 首先,我们需要分析网页的结构和数据。打开王者荣耀营地官方网站,在使用浏览器的“检元素”功能可以看到网页源代码和各个元素的选择器。 然后,我们可以使用Python中的第三方库,例如Requests和BeautifulSoup,来发送HTTP请求并解析网页内容。通过发送GET请求,我们可以获取王者荣耀营地战绩的网页源代码。 接下来,利用BeautifulSoup库解析获取到的网页源代码,并选取需要的数据所在的HTML元素。通过分析网页源代码,我们可以找到战绩信息所在的标签和类名,然后使用BeautifulSoup的select或find_all方法来选中这部分内容。 最后,将选中的数据进行提取和清洗,然后存储到文件或数据库中。根据需求,可以将战绩信息保存为CSV格式或者导入到数据库中进行后续分析和处理。 需要注意的是,为了遵守网站的使用条款和规定,爬取数据时应该进行适当的延时和请求头设置,以模拟人类操作,避免对网站造成过大的压力。 综上所述,使用Python编写网络爬虫可以方便地获取王者荣耀营地战绩信息,并进行后续处理和分析。但在实际应用中,应遵守合规规定,尊重网站使用条款,并合理使用爬虫技术。 ### 回答2: 使用Python爬取王者营地战绩可以通过以下几个步骤实现: 1. 导入Python爬虫所需的库,如requests、BeautifulSoup等。 2. 构建URL,即目标网页的链接地址。可以在浏览器中打开王者荣耀官方网站,找到王者营地战绩询页面,复制该页面的URL。 3. 使用requests库发送GET请求,获取网页的HTML源代码。代码示例: ```python import requests url = "http://www.wzry.com/query/queryRecord.shtml" # 以王者荣耀官方网站的战绩询页面为例 response = requests.get(url) html = response.text ``` 4. 使用BeautifulSoup库解析HTML源代码,并提取所需信息。通过观察网页的HTML结构,确定需要爬取的数据在哪些HTML标签中。代码示例: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html, "html.parser") # 使用BeautifulSoup库提供的找元素的方法,定位到包含战绩信息的HTML标签 record_div = soup.find("div", attrs={"class": "record"}) # 进一步解析战绩信息,提取具体的数据 record_data = record_div.text ``` 5. 对战绩数据进行处理和存储。根据实际需求,可以使用字符串操作、正则表达式等方法提取感兴趣的信息,并将其存储到文件或数据库中。 总之,使用Python爬取王者营地战绩主要涉及发送HTTP请求、解析HTML、处理数据等步骤。通过合理利用相应的库和方法,可以较为轻松地完成爬取。 ### 回答3: Python可以用来爬取王者荣耀游戏中的玩家战绩信息。首先,我们需要了解需要获取的战绩信息的来源。王者荣耀官方提供了API接口,通过该接口可以获取到玩家的战绩数据。 首先,我们需要使用Python的requests库来发送HTTP请求获取到API接口提供的数据。使用requests库发送GET请求,将玩家的游戏ID作为参数传递给API接口。然后,我们可以获得返回的JSON格式的数据。 接下来,我们需要使用Python的json库来解析返回的JSON数据。将JSON数据转换成Python字典,然后可以提取出需要的战绩信息。 例如,我们可以提取的战斗场次、胜率、平均KDA等信息。通过对返回的JSON数据进行处理,可以获取到这些战绩数据。 最后,我们可以使用Python的数据分析库,如Pandas或NumPy对战绩数据进行进一步的分析和处理。例如,我们可以计算出最近几场比赛的胜率趋势,或者对比不同英雄的胜率等。 总之,使用Python可以方便地爬取王者荣耀游戏中的玩家战绩数据,并进行进一步的分析。这样可以帮助玩家更好地了解自己的游戏水平,并作出相应的调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值