昨天一个客户找我,他的需求是根据他提供的关键字,通过和平营地app里面的好友里面的搜索接口进行搜索,将搜索结果里面的用户名和关键字进行对比,如果不存在则保留关键字,并对搜索结果的用户进行qq和微信区分开来,最后导出qq和微信不存在的用户名关键词,话不多说,直接上手撸代码,手机下载和平营地app,打开黄鸟抓包工具,app切换到搜索界面,如图
接下来我们进行抓包,截取的数据包如图所示
接下来,使用python代码进行模拟抓包请求,查看其表单数据,如图
代码如下,如图
for pg in range(1,2):
data = {
'openId':'EF55C275103630EAD04719E61D9C973C',
'cGzip':'1',
'cDevicePPI':'440',
'pageSize':'10',
'cGameId':'20004',
'cDeviceImei':'d99f881b3682d7399af25ff810001d51641d',
'gameOpenId':'67954B4521391BA2A5547265F5AD94F7',
'keyword':f'{cy}',
'cClientVersionCode':'2102091266',
'cDeviceKey':'54c4d03c42a7532f',
'cChannelId':'5',
'currPage':f'{pg}',
'cDeviceMem':'22293',
'userId':'795907637',
'token':'自己的token',
'cCurrentGameId':'20004',
'pf':'desktop_m_qq-10000144-android-2002-',
'cDeviceImsi':'d99f881b3682d7399af25ff810001d51641d'
}
url = 'https://formal.api.gp.qq.com/search/getuserandrole'
headers = {
'user-agent': 'okhttp/3.12.1'
}
r = requests.post(url,headers=headers,data=data)
datas = r.json()['data']['list']
for i in datas:
roleName = i.get('roleName')
areaId = i.get('areaId','0')
if int(areaId) == 2:
areaId = 'qq'
elif int(areaId) == 1:
areaId = '微信'
sex = i['sex']
if sex == 2:
sex = '女'
else:
sex = '男'
print(roleName,areaId,sex)
if '微信' in areaId:
wx_lis.append(roleName)
else:
qq_lis.append(roleName)
token是登录验证,填自己的就行,pg是页数,keyword为关键词,这里我一般采集2页,如果你想采集多页自己循环即可,整体过程无任何加密,主要熟悉抓包过程。最后采集的效果如图所示
点击此处登录后即可评论