1.这期要告别我们的老大哥MT了,我们使用 Python 人生苦短,我用Python[玫瑰]
需要注意的参数我选中了
最好是我提交了什么参数你们就提交什么参数就 好了 那几个选中格外注意一下就行了 如果要爬取别人的战绩以及对局详情
改一下roleid就可以了[玫瑰]

如果你会一点iapp,那么学起Python是非常快的,因为他们语法太像了[玫瑰]
2.其实手机也可以爬虫,Python有手机编辑器,直接运行也可以,或者说直接使用iapp爬虫,iapp的功能也十分强大,可能有很多人不知道爬虫的概念,爬虫就是通过解析网页源码提取出我们想要的信息。

如果感兴趣的人很多的话,我也可以出一个iapp的爬虫源码。

3.我将数据通过Python保存到了xls表格当中
sheet1是我所有对局
sheet2是每一局的对局详情
其实数据包中还有非常非常多的数据,我只是提取一小部分,我只提供一个思路,并没有精写。

4.某宝应该就是使用这种方法来查隐藏战绩的,他们具体是怎么做到的呢,我举个例子,你打了一把排位,你战绩在营地是关的,但是你会匹配到其他9个人,
你很难保证其他人的战绩全是关的,如果说你们所有人的营地战绩全是关的,那么该场对局就对外绝密了,但这种概率是非常非常小的,
你对局数据的泄露不一定是通过你,也有可能是通过别人而间接泄露你的对局数据,某宝他们自己打几局游戏,根据这几局游戏去查没有关战绩的人的战绩,通过这些人的战绩又能获取很多人很多人的对局数据,这样无限循环下去,
我与你王者好像并没有什么关系,但是如果我们的视角能升到更高的维度,其实我们都在一个蜘蛛网里,我们之间通过各种交错人相连着蛛丝,我这么说,
不知道你们感受到大数据的魅力了吗,他们一切都是通过程序能快速进行,爬的人多了,都存到了库里,就实现了查隐藏战绩。

最后: 晚安[玫瑰][玫瑰]
源代码:
import requestsimport jsonimport xlwtcc=0time=0canshu=1ii=0zidian=[""]workbook=xlwt.Workbook(encoding="utf-8")worksheet=workbook.add_sheet('sheet1')worksheet2=workbook.add_sheet('sheet2')url="https://kohcamp.qq.com/game/morebattlelist"header={'gameRoleId': '108113011','token':'CM7tvfe8','userId': '92815055','Content-Type': 'application/json; charset=UTF-8','Content-Length': '104','Host': 'ssl.kohsocialapp.qq.com','Connection': 'Keep-Alive','Accept-Encoding': 'gzip','User-Agent': 'okhttp/4.9.1'}while ii==0:data = {"lastTime":time,"apiVersion":4,"friendRoleId":"108113011","friendUserId":"92815055","option":0}x = requests.post(url=url,json=data,headers=header)lasttime=json.loads(x.text)["data"]['lastTime']time=lasttimex=json.loads(x.text)["data"]["list"]print(len(x))zidian.extend(x)if len(x)10:ii=1mm=len(zidian)del zidian[0]for i in range (mm-1):zd=zidian[i]import requestsworksheet.write(i, 0, zd['gametime'])worksheet.write(i, 1, zd['mapName'])worksheet.write(i, 2, "英雄id:")worksheet.write(i, 3, zd['heroId'])worksheet.write(i, 4, "击杀数:")worksheet.write(i, 5, zd['killcnt'])worksheet.write(i, 6, "死亡数:")worksheet.write(i, 7, zd['deadcnt'])worksheet.write(i, 8, "助攻数:")worksheet.write(i, 9, zd['assistcnt'])gameSeq= zd['gameSeq']print(gameSeq)gameSeq=str(gameSeq)battleType=zd['battleType']print(battleType)battleType=str(battleType)relaySvrId=zd['relaySvrId']print(relaySvrId)relaySvrId=str(relaySvrId)pvpType=zd['pvpType']print(pvpType)pvpType=str(pvpType)gameSvrId=zd['gameSvrId']print(gameSvrId)gameSvrId=str(gameSvrId)AcntCamp=zd['AcntCamp']print(AcntCamp)AcntCamp=str(AcntCamp)import requestsimport jsonimport requests import json import xlwt cc=0 time=0 canshu=1 ii=0 zidian=[""] workbook=xlwt.Workbook(encoding="utf-8") worksheet=workbook.add_sheet('sheet1') worksheet2=workbook.add_sheet('sheet2') url="https://kohcamp.qq.com/game/morebattlelist" header={ 'gameRoleId': '108113011', 'token':'CM7tvfe8', 'userId': '92815055', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Length': '104', 'Host': 'ssl.kohsocialapp.qq.com', 'Connection': 'Keep-Alive', 'Accept-Encoding': 'gzip', 'User-Agent': 'okhttp/4.9.1' } while ii==0: data = {"lastTime":time,"apiVersion":4,"friendRoleId":"108113011","friendUserId":"92815055","option":0} x = requests.post(url=url,json=data,headers=header) lasttime=json.loads(x.text)["data"]['lastTime'] time=lasttime x=json.loads(x.text)["data"]["list"] print(len(x)) zidian.extend(x) if len(x)10: ii=1 mm=len(zidian) del zidian[0] for i in range (mm-1): zd=zidian[i] import requests worksheet.write(i, 0, zd['gametime']) worksheet.write(i, 1, zd['mapName']) worksheet.write(i, 2, "英雄id:") worksheet.write(i, 3, zd['heroId']) worksheet.write(i, 4, "击杀数:") worksheet.write(i, 5, zd['killcnt']) worksheet.write(i, 6, "死亡数:") worksheet.write(i, 7, zd['deadcnt']) worksheet.write(i, 8, "助攻数:") worksheet.write(i, 9, zd['assistcnt']) gameSeq= zd['gameSeq'] print(gameSeq) gameSeq=str(gameSeq) battleType=zd['battleType'] print(battleType) battleType=str(battleType) relaySvrId=zd['relaySvrId'] print(relaySvrId) relaySvrId=str(relaySvrId) pvpType=zd['pvpType'] print(pvpType) pvpType=str(pvpType) gameSvrId=zd['gameSvrId'] print(gameSvrId) gameSvrId=str(gameSvrId) AcntCamp=zd['AcntCamp'] print(AcntCamp) AcntCamp=str(AcntCamp) import requests import jsonimport requests import json import xlwt cc=0 time=0 canshu=1 ii=0 zidian=[""] workbook=xlwt.Workbook(encoding="utf-8") worksheet=workbook.add_sheet('sheet1') worksheet2=workbook.add_sheet('sheet2') url="https://kohcamp.qq.com/game/morebattlelist" header={ 'gameRoleId': '108113011', 'token':'CM7tvfe8', 'userId': '92815055', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Length': '104', 'Host': 'ssl.kohsocialapp.qq.com', 'Connection': 'Keep-Alive', 'Accept-Encoding': 'gzip', 'User-Agent': 'okhttp/4.9.1' } while ii==0: data = {"lastTime":time,"apiVersion":4,"friendRoleId":"108113011","friendUserId":"92815055","option":0} x = requests.post(url=url,json=data,headers=header) lasttime=json.loads(x.text)["data"]['lastTime'] time=lasttime x=json.loads(x.text)["data"]["list"] print(len(x)) zidian.extend(x) if len(x)10: ii=1 mm=len(zidian) del zidian[0] for i in range (mm-1): zd=zidian[i] import requests worksheet.write(i, 0, zd['gametime']) worksheet.write(i, 1, zd['mapName']) worksheet.write(i, 2, "英雄id:") worksheet.write(i, 3, zd['heroId']) worksheet.write(i, 4, "击杀数:") worksheet.write(i, 5, zd['killcnt']) worksheet.write(i, 6, "死亡数:") worksheet.write(i, 7, zd['deadcnt']) worksheet.write(i, 8, "助攻数:") worksheet.write(i, 9, zd['assistcnt']) gameSeq= zd['gameSeq'] print(gameSeq) gameSeq=str(gameSeq) battleType=zd['battleType'] print(battleType) battleType=str(battleType) relaySvrId=zd['relaySvrId'] print(relaySvrId) relaySvrId=str(relaySvrId) pvpType=zd['pvpType'] print(pvpType) pvpType=str(pvpType) gameSvrId=zd['gameSvrId'] print(gameSvrId) gameSvrId=str(gameSvrId) AcntCamp=zd['AcntCamp'] print(AcntCamp) AcntCamp=str(AcntCamp) import requests import json
导出
url = "https://kohcamp.qq.com/role/h5getplaydetail"header = {'gameRoleId': '108113011','token': 'CM7tvfe8','userId': '92815055','Content-Type': 'application/json; charset=UTF-8','Content-Length': '156','Host': 'kohcamp.qq.com','Connection': 'Keep-Alive','Accept-Encoding': 'gzip','User-Agent': 'okhttp/4.9.1'}data = {"roleId": "108113011", "gameSeq": gameSeq, "battleType": battleType, "acntCamp": AcntCamp,"relaySvrId": relaySvrId, "pvpType": pvpType, "gameSvrId": gameSvrId, "userId": "92815055"}x = requests.post(url=url, json=data, headers=header)m=json.loads(x.text)['data']['acntcampBlue']q=json.loads(x.text)['data']['acntcampRed']for p in range(len(m)):worksheet2.write(cc, 0, m[p]['dtEventTime'])worksheet2.write(cc, 1, "玩家名称:"+m[p]['roleName'])worksheet2.write(cc, 2, "英雄名称:")worksheet2.write(cc, 3, m[p]['heroName'])worksheet2.write(cc, 4, "击杀数:")worksheet2.write(cc, 5, m[p]['killCnt'])worksheet2.write(cc, 6, "死亡数:")worksheet2.write(cc, 7, m[p]['deadCnt'])worksheet2.write(cc, 8, "助攻数:")worksheet2.write(cc, 9, m[p]['assistCnt'])cc=cc+1for c in range(len(q)):worksheet2.write(cc, 0, q[c]['dtEventTime'])worksheet2.write(cc, 1, "玩家名称:"+q[c]['roleName'])worksheet2.write(cc, 2, "英雄名称:")worksheet2.write(cc, 3, q[c]['heroName'])worksheet2.write(cc, 4, "击杀数:")worksheet2.write(cc, 5, q[c]['killCnt'])worksheet2.write(cc, 6, "死亡数:")worksheet2.write(cc, 7, q[c]['deadCnt'])worksheet2.write(cc, 8, "助攻数:")worksheet2.write(cc, 9, q[c]['assistCnt'])cc=cc+1workbook.save("战绩.xls")url = "https://kohcamp.qq.com/role/h5getplaydetail" header = { 'gameRoleId': '108113011', 'token': 'CM7tvfe8', 'userId': '92815055', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Length': '156', 'Host': 'kohcamp.qq.com', 'Connection': 'Keep-Alive', 'Accept-Encoding': 'gzip', 'User-Agent': 'okhttp/4.9.1' } data = {"roleId": "108113011", "gameSeq": gameSeq, "battleType": battleType, "acntCamp": AcntCamp, "relaySvrId": relaySvrId, "pvpType": pvpType, "gameSvrId": gameSvrId, "userId": "92815055"} x = requests.post(url=url, json=data, headers=header) m=json.loads(x.text)['data']['acntcampBlue'] q=json.loads(x.text)['data']['acntcampRed'] for p in range(len(m)): worksheet2.write(cc, 0, m[p]['dtEventTime']) worksheet2.write(cc, 1, "玩家名称:"+m[p]['roleName']) worksheet2.write(cc, 2, "英雄名称:") worksheet2.write(cc, 3, m[p]['heroName']) worksheet2.write(cc, 4, "击杀数:") worksheet2.write(cc, 5, m[p]['killCnt']) worksheet2.write(cc, 6, "死亡数:") worksheet2.write(cc, 7, m[p]['deadCnt']) worksheet2.write(cc, 8, "助攻数:") worksheet2.write(cc, 9, m[p]['assistCnt']) cc=cc+1 for c in range(len(q)): worksheet2.write(cc, 0, q[c]['dtEventTime']) worksheet2.write(cc, 1, "玩家名称:"+q[c]['roleName']) worksheet2.write(cc, 2, "英雄名称:") worksheet2.write(cc, 3, q[c]['heroName']) worksheet2.write(cc, 4, "击杀数:") worksheet2.write(cc, 5, q[c]['killCnt']) worksheet2.write(cc, 6, "死亡数:") worksheet2.write(cc, 7, q[c]['deadCnt']) worksheet2.write(cc, 8, "助攻数:") worksheet2.write(cc, 9, q[c]['assistCnt']) cc=cc+1 workbook.save("战绩.xls")url = "https://kohcamp.qq.com/role/h5getplaydetail" header = { 'gameRoleId': '108113011', 'token': 'CM7tvfe8', 'userId': '92815055', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Length': '156', 'Host': 'kohcamp.qq.com', 'Connection': 'Keep-Alive', 'Accept-Encoding': 'gzip', 'User-Agent': 'okhttp/4.9.1' } data = {"roleId": "108113011", "gameSeq": gameSeq, "battleType": battleType, "acntCamp": AcntCamp, "relaySvrId": relaySvrId, "pvpType": pvpType, "gameSvrId": gameSvrId, "userId": "92815055"} x = requests.post(url=url, json=data, headers=header) m=json.loads(x.text)['data']['acntcampBlue'] q=json.loads(x.text)['data']['acntcampRed'] for p in range(len(m)): worksheet2.write(cc, 0, m[p]['dtEventTime']) worksheet2.write(cc, 1, "玩家名称:"+m[p]['roleName']) worksheet2.write(cc, 2, "英雄名称:") worksheet2.write(cc, 3, m[p]['heroName']) worksheet2.write(cc, 4, "击杀数:") worksheet2.write(cc, 5, m[p]['killCnt']) worksheet2.write(cc, 6, "死亡数:") worksheet2.write(cc, 7, m[p]['deadCnt']) worksheet2.write(cc, 8, "助攻数:") worksheet2.write(cc, 9, m[p]['assistCnt']) cc=cc+1 for c in range(len(q)): worksheet2.write(cc, 0, q[c]['dtEventTime']) worksheet2.write(cc, 1, "玩家名称:"+q[c]['roleName']) worksheet2.write(cc, 2, "英雄名称:") worksheet2.write(cc, 3, q[c]['heroName']) worksheet2.write(cc, 4, "击杀数:") worksheet2.write(cc, 5, q[c]['killCnt']) worksheet2.write(cc, 6, "死亡数:") worksheet2.write(cc, 7, q[c]['deadCnt']) worksheet2.write(cc, 8, "助攻数:") worksheet2.write(cc, 9, q[c]['assistCnt']) cc=cc+1 workbook.save("战绩.xls")
iapp也可以完成这个操作
暂无评论内容