本文主要是介绍TYC自动登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
某查公司网站登录解密(极验滑动验证码思路)
模拟登录某查获取登录用户名以及登录cookie,供后续使用
提示:以下是本篇文章正文内容,下面案例可供参考
一、geetest
import time
import requests
import re
url = 'https://www.tianyancha.com/verify/geetest.xhtml' # 天眼查极验接口 获取gt与challenge用
data = {"uuid": int(time.time() * 1000)}
res = requests.post(url, json=data).json()
req = res
gt, challenge = req['data']["gt"], req['data']["challenge"]
get_token_headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36'}
api = 'https://api.geetest.com/get.php?gt={}' \
'&challenge={}&product=popup&offline=false' \
'&protocol=https://&path=/static/js/geetest.6.0.9.js&pencil=/static/js/pencil.1.0.3.js' \
'&voice=/static/js/voice.1.2.0.js&type=slide&beeline=/static/js/beeline.1.0.1.js' \
'&maze=/static/js/maze.1.0.1.js&callback=geetest_{}'.format(gt, challenge, int(time.time() * 1000))
res = requests.get(api, headers=get_token_headers)
img_json = re.findall("\((.*)\)", res.text, re.S)[0]
# 获取验证码图片 及缺口地址的json
图片复原,缺口识别
拿到的图片为乱序图片,复原并进行缺口识别
复原后的图片
识别出缺口位置并模拟生成滑动轨迹坐标
[[-34, -32, 0], [0, 0, 0], [7, -1, 157], [12, -1, 173], [20, -1, 191], [30, -1, 208], [40, -1, 227], [48, -1, 242], [55, -1, 260], [59, -1, 278], [62, -1, 297], [65, -1, 314], [67, -1, 333], [68, -1, 352], [68, -1, 370], [72, -1, 388], [71, -1, 404], [71, -1, 423], [73, -1, 441], [74, -1, 459], [72, -1, 476], [73, -1, 493], [73, -1, 511], [75, 0, 526], [75, 0, 542], [75, 0, 559], [74, 0, 578], [74, 0, 593], [75, 0, 611], [76, 0, 629], [77, 1, 646], [75, 1, 664], [74, 1, 680], [75, 1, 696], [76, 1, 713], [76, 1, 728], [75, 1, 747], [75, 1, 763], [77, 1, 782], [76, 1, 798], [77, 1, 815], [75, 1, 832], [76, 1, 849], [78, 1, 868], [77, 1, 888], [75, 1, 908], [75, 1, 927], [75, 1, 944], [76, 1, 960], [76, 1, 976], [76, 1, 996], [76, 1, 1012], [76, 1, 1032], [76, 1, 1254]]
通过坐标经过极验js转换为字符串
‘Q5/13545221…!)!)!)!)!)!)!)!)!)(!!I!)(((((((((((tytsttssstsst)ss(ss(s(vs(s(ss(s(s(s(!!( ) e ? 8 @ @ ? ? : ? 99 : @ 89 : @ ? S 89 R P h 9 @ L 9 @ @ S ? )e?8@@??:?99:@89:@?S89RPh9@L9@@S? )e?8@@??:?99:@89:@?S89RPh9@L9@@S?)G$0?’
经过加密生成核心w参数
1DxxY29KbEG)dKLvmSJta(DYmXqolEizKSL8VCO9Rft1a98Es5)TCScQyGv4ZH(uwWDkgnZzKn8p646SHSSM0nBrqE1UnvskuBb6KD1Hp9yKyw6aZzfTB78PJ4K53jQM4(bvzZNEKSCyvaocIuNESgWe(gPPjbo8Z84rW5WG5CEaLpgzrcgwcWByGtLZvDYEvCR7rQjWL4RIaebNtacfFh3XxE0vdUxvIeHxmRFQYevJspXfko9KqVGadmypM2EsBnw7we4h1fsp8rf7ns48hXgrZvhYVALQtR1T19nKHpmdUxQYlHD9xRmw0EDCeNL9GKNyV)Hv6G(L8YviXD9tgUwE)RnU42d2e15198d563a1eef0c0dc20ecc4559934ce5b639e3bf06db2aa1cefaabe34443f6310fe161fb0aa3e787e28c5d4dbec3a70ab8a100c943a907cf98abaf45c7843e82849e18776e0ff424e2f02dd1271d22085d05f8659d74844c9aca5854bf15fc555cc2d4659564b992340c8cffc114e664d844595cd7 7
代码如下(示例):
至此 极验的主要登录参数就全部构造出来
请求成功之后会返回一个validate参数
用此参数可以成功登录某查并拿到登录后的cookie
这篇关于TYC自动登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!