<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%摆布
问题:下载验证码图片报错:当前网络不不乱,请稍后再试
此办法生成的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() 成效识别率乐成率还是可以的