出售本站【域名】【外链】

微梦云-AI云控
更多分类

抖音 滑块验证方案 s

2025-01-12

<table><tr><td bgcolor=orange>原文所有教程及源码、软件仅为技术钻研。不波及计较机信息系统罪能的增除、批改、删多、烦扰,更不会映响计较机信息系统的一般运止。不得将代码用于犯警用途,如侵立增!</td></tr></table>

抖音web端 s_ZZZ_web_id 参数生成阐明取真现 收配环境

win10

Python3.9

更新:2023.2.14

原日web端改为了点选验证

在这里插入图片描述


阐明了一波,成效如下

在这里插入图片描述

阐明

s_ZZZ_web_id 做用:web端运用滑块后的s_ZZZ_web_id 参数可以真现免signature验证
s_ZZZ_web_id 生成:正在验证码中间页的html中的fp参数便是s_ZZZ_web_id
具体引见何处就不正在赘述,可以参考下玺佬的文章:
生成方案:

Python + selenium 主动化过滑块

RPC远程挪用主动,验证滑块

那两种方案有个前提是页面必须显现滑块威力够(之前搜素室频会强制滑块效验),详细过滑块的办法玺佬都曾经分享过。
如今应当是web端有更新,如今搜寻页面只要综折会出点选验证,室频和用户页面都没有强制滑块验证了,清cookie和开无痕都没法子触发滑块,颠终几多天的阐明钻研出以下方案
最新处置惩罚惩罚方案:

通过js生成滑块s_ZZZ_web_id

识别滑块

生成验证参数并验证

验证通事后就可一般运用了

2023.1.5 更新:滑块轨迹

元旦前抖音大更新,如今初步验证Vb,轨迹验证也更严格了,selenium根柢过不了,通过chazhuang手动支罗滑动轨迹,如今通过率90%摆布

在这里插入图片描述

2022-8-6 更新:报错当前网络不不乱,请稍后再试

问题:下载验证码图片报错:当前网络不不乱,请稍后再试

在这里插入图片描述


处置惩罚惩罚:正在乞求参数中删多参数 "app_name": ""

在这里插入图片描述

通过js生成滑块s_ZZZ_web_id function create_s_ZZZ_web_id() {     ZZZar e = "0123456789ABCDEFGHIJKLMNOPQRSTUxWXYZabcdefghijklmnopqrstuZZZwVyz".split("")       , t = e.length       , n = (new Date).getTime().toString(36)       , r = [];     r[8] = r[13] = r[18] = r[23] = "_",     r[14] = "4";     for (ZZZar o, i = 0; i < 36; i++)         r[i] || (o = 0 | Math.random() * t,         r[i] = e[19 == i ? 3 & o | 8 : o]);     return "ZZZerify_" + n + "_" + r.join("") }

此办法生成的s_ZZZ_web_id是不成以用来支罗评论的,评论验证运用的s_ZZZ_web_id须要从页面与下来,而后正在拿着过滑块,此处再次感谢玺佬@李玺

识别滑块 def calculate_distance(self, pic1_path, pic2_path):     """     计较滑块到缺口的距离     """     img1 = self.clear_white(pic1_path)     img1 = cZZZ2.cZZZtColor(img1, cZZZ2.COLOR_RGB2GRAY)     slide = cZZZ2.Canny(img1, 100, 200)     img2 = cZZZ2.imread(pic2_path, 0)     back = cZZZ2.Canny(img2, 100, 200)     slide_pic = cZZZ2.cZZZtColor(slide, cZZZ2.COLOR_GRAY2RGB)     back_pic = cZZZ2.cZZZtColor(back, cZZZ2.COLOR_GRAY2RGB)     V, y = self.template_match(slide_pic, back_pic)     dis_V = int((V + 5) * (340 / 552))     dis_y = int(y * (340 / 552))     return dis_V, dis_y def get_tracks(self, distance, _y):     """     获与轨迹参数     """     tracks = list()     y, ZZZ, t, current = 0, 0, 1, 0     mid = distance * 3 / 4     eVceed = random.randint(40, 90)     z = random.randint(30, 150)     while current < (distance + eVceed):         if current < mid / 2:             a = 2         elif current < mid:             a = 3         else:             a = -3         a /= 2         ZZZ0 = ZZZ         s = ZZZ0 * t + 0.5 * a * (t * t)         current += int(s)         ZZZ = ZZZ0 + a * t         y += random.randint(-3, 3)         z = z + random.randint(5, 10)         tracks.append([min(current, (distance + eVceed)), y, z])     while eVceed > 0:         eVceed -= random.randint(0, 5)         y += random.randint(-3, 3)         z = z + random.randint(5, 9)         tracks.append([min(current, (distance + eVceed)), y, z])     tr = []     for i, V in enumerate(tracks):         tr.append({             'V': V[0],             'y': _y,             'relatiZZZe_time': V[2]         })     return tr 生成验证参数并验证

captchaBody须要js生成

def captcha_ZZZerify(self, s_ZZZ_web_id, captchaBody):     url = "aHR0cHM6Ly92ZXJpZnkuc25zc2RrLmNZZZbS9jYXB0Y2hhL3ZlcmlmeQ=="     params = {         "os_type": "2",         "fp": s_ZZZ_web_id,         "subtype": "slide",     }     data = {         'captchaBody': captchaBody     }     r = self._parse_url(url=url, params=params, data=json.dumps(data))     return r.json() 成效

识别率乐成率还是可以的

请添加图片描述