江苏省建设厅的官方网站,太原做网站费用,深圳网站设计公司哪家便宜,旅游网站开发的国内外现状目录 实现效果实现思路登录查询积分数量签到 实现代码总结 欢迎关注 『python爬虫』 专栏#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏#xff0c;持续更新中 实现效果 实现思路
登录
f12 打开控制台,进入网络清除所有信息后点击登录按钮 通过搜索login(通用写法)… 目录 实现效果实现思路登录查询积分数量签到 实现代码总结 欢迎关注 『python爬虫』 专栏持续更新中 欢迎关注 『python爬虫』 专栏持续更新中 实现效果 实现思路
登录
f12 打开控制台,进入网络清除所有信息后点击登录按钮 通过搜索login(通用写法)/你自己的用户名密码(有些网页没有加密用户名密码的情况),得到了cookie headers {cookie: xxxxxxxxxx,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.70 Safari/537.36}session requests.session()# 1.登录login_url https://comicai.ai/signin # 登录urlrep session.get(urllogin_url, headersheaders) # rep是返回的网页源码# 检查响应状态码if rep.status_code 200:# 获取文本格式的响应数据data_text rep.text# print(rep-文本格式数据, data_text) #Response [200]else:print(请求失败)查询积分数量
进行分析.我们看到一个积分右键查看网页源码,发现找不到1494,显然数据要靠请求得到,不是写在网页里的,积分显然是在网页加载好后就出现了,我们f5刷新网页,抓包获取积分的请求,得知了mana表示积分1494的数值也对得上. 得到了请求网址 check_mark_url https://api.comicai.ai/api/v1/user/info得到了请求标头 # 2.查看分数check_mark_url https://api.comicai.ai/api/v1/user/infoheaders {Accept: application/json, text/plain, */*,Cache-Control: no-cache,Origin: https://comicai.ai,Referer: https://comicai.ai/dashboard,Sec-Fetch-Dest: empty,Sec-Fetch-Mode: cors,Sec-Fetch-Site: same-site,Token: xxxxxxxxxxxxxxxx,#没有Token 会导致{code:AUTH_FAILED,message:auth failed}{code: AUTH_FAILED, message: auth failed}User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.70 Safari/537.36}mark_rep requests.get(check_mark_url, headersheaders)if mark_rep.status_code 200:# 请求成功# 获取文本格式的响应数据# data_text mark_rep.text# print(mark_rep-文本格式数据{}.format(data_text) ) #Response [200]data_json mark_rep.json()print(data_json-文本格式数据{}.format(data_json))asset_mana data_json[data][asset][mana]print(asset_mana-签到前的积分数{}.format(asset_mana))else:# 请求失败print(f签到前查询积分失败状态码{mark_rep.status_code})签到
准备抓包
在我们完成签到后,搜索签到后的积分数1495可得到 sign是我们完成签到的请求 得到请求url
sign_url https://api.comicai.ai/api/v1/user/sign得到请求标头,装进header,这里要注意,这么多的请求标头,哪些参数是必须关键的呢?一个个试探,你删掉一个,看看能不能请求成功,最后发现Content-Type,Token,User-Agent不可缺少,如果缺少了Content-Type,遇到报错,其中涉及的问题可参考[请求失败返回 ‘message‘: ‘unregister Content-Type: ] 缺少了Content-Type headers {Content-Type: application/json, #如果注释了本行代码 请求失败 {code: CODEC, message: unregister Content-Type: }Token: xxxxxxxxxxxxxxxxxxxxxxx,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36}data {}response requests.post(sign_url, headersheaders, datadata)签到时还要记得处理已经签到过的情况,你在签到过的情况下再次请求可得返回的code 值为 USER_REPEAT_SIGN # 3.签到sign_url https://api.comicai.ai/api/v1/user/signheaders {Content-Type: application/json, #如果注释了本行代码 请求失败 {code: CODEC, message: unregister Content-Type: }Token: xxxxxxxxxxxxxxxxxx,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36}data {}response requests.post(sign_url, headersheaders, datadata)if response.status_code 200:result json.loads(response.text)if result.get(code) Success:mana result[data][asset][mana]print(f签到成功,签到后得到的积分数 mana 值为: {mana})elif result.get(code) USER_REPEAT_SIGN:print(f今天已经签到过了,退出)else:print(请求失败)print(result)else:print(f请求出错错误码: {response.status_code})实现代码
import json
import requestsdef dailyTask():headers {cookie: xxxxxxx,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.70 Safari/537.36}session requests.session()# 1.登录login_url https://comicai.ai/signin # 登录urlrep session.get(urllogin_url, headersheaders) # rep是返回的网页源码# 检查响应状态码if rep.status_code 200:# 获取文本格式的响应数据data_text rep.text# print(rep-文本格式数据, data_text) #Response [200]else:print(请求失败)# 2.查看分数check_mark_url https://api.comicai.ai/api/v1/user/infoheaders {Accept: application/json, text/plain, */*,Cache-Control: no-cache,Origin: https://comicai.ai,Referer: https://comicai.ai/dashboard,Sec-Fetch-Dest: empty,Sec-Fetch-Mode: cors,Sec-Fetch-Site: same-site,Token: xxxxxxxxxxxxxxxxx,#没有Token 会导致{code:AUTH_FAILED,message:auth failed}{code: AUTH_FAILED, message: auth failed}User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.70 Safari/537.36}mark_rep requests.get(check_mark_url, headersheaders)if mark_rep.status_code 200:# 请求成功# 获取文本格式的响应数据# data_text mark_rep.text# print(mark_rep-文本格式数据{}.format(data_text) ) #Response [200]data_json mark_rep.json()print(data_json-文本格式数据{}.format(data_json))asset_mana data_json[data][asset][mana]print(asset_mana-签到前的积分数{}.format(asset_mana))else:# 请求失败print(f签到前查询积分失败状态码{mark_rep.status_code})# 3.签到sign_url https://api.comicai.ai/api/v1/user/signheaders {Content-Type: application/json, #如果注释了本行代码 请求失败 {code: CODEC, message: unregister Content-Type: }Token: xxxxxxxxxxxxxx,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36}data {}response requests.post(sign_url, headersheaders, datadata)if response.status_code 200:result json.loads(response.text)if result.get(code) Success:mana result[data][asset][mana]print(f签到成功,签到后得到的积分数 mana 值为: {mana})elif result.get(code) USER_REPEAT_SIGN:print(f今天已经签到过了,退出)else:print(请求失败)print(result)else:print(f请求出错错误码: {response.status_code})if __name__ __main__:dailyTask()print(执行完毕~) 总结
大家喜欢的话给个点个关注给大家分享更多计算机专业学生的求学之路
版权声明
发现你走远了mzh原创作品转载必须标注原文链接
Copyright 2023 mzh
Crated2023-3-1 欢迎关注 『python爬虫』 专栏持续更新中 欢迎关注 『python爬虫』 专栏持续更新中 『未完待续』