抖音web端 s_v_web_id 参数生成分析与实现

简介: 抖音web端 s_v_web_id 参数生成分析与实现



本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!

抖音web端 s_v_web_id 参数生成分析与实现

操作环境

  • win10
  • Python3.9

分析

s_v_web_id 作用:web端使用滑块后的s_v_web_id 参数可以实现免signature验证s_v_web_id 生成:在验证码中间页的html中的fp参数就是s_v_web_id详细介绍这边就不在赘述,可以参考下玺佬的文章:s_v_web_id介绍生成方案:

  • Python + selenium 自动化过滑块
  • RPC远程调用自动,验证滑块

这两种方案有个前提是页面必须出现滑块才可以(之前搜素视频会强制滑块效验),具体过滑块的方法玺佬都已经分享过。现在应该是web端有更新,现在搜索页面只有综合会出点选验证,视频和用户页面都没有强制滑块验证了,清cookie和开无痕都没办法触发滑块,经过几天的分析研究出以下方案最新解决方案:

  • 通过js生成滑块s_v_web_id
  • 识别滑块
  • 生成验证参数并验证
  • 验证通过后就可正常使用了

通过js生成滑块s_v_web_id

functioncreate_s_v_web_id() {

   vare="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("")

     , t=e.length

     , n= (newDate).getTime().toString(36)

     , r= [];

   r[8] =r[13] =r[18] =r[23] ="_",

   r[14] ="4";

   for (varo, i=0; i<36; i++)

       r[i] || (o=0|Math.random() *t,

       r[i] =e[19==i?3&o|8 : o]);

   return"verify_"+n+"_"+r.join("")

}

此方法生成的s_v_web_id是不可以用来采集评论的,评论验证使用的s_v_web_id需要从页面取下来,然后在拿着过滑块,此处再次感谢玺佬@李玺


识别滑块

defcalculate_distance(self, pic1_path, pic2_path):

   """

   计算滑块到缺口的距离

   """

   img1 = self.clear_white(pic1_path)

   img1 = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)

   slide = cv2.Canny(img1, 100, 200)

   img2 = cv2.imread(pic2_path, 0)

   back = cv2.Canny(img2, 100, 200)

   slide_pic = cv2.cvtColor(slide, cv2.COLOR_GRAY2RGB)

   back_pic = cv2.cvtColor(back, cv2.COLOR_GRAY2RGB)

   x, y = self.template_match(slide_pic, back_pic)

   dis_x = int((x+5) * (340/552))

   dis_y = int(y* (340/552))

   returndis_x, dis_y

defget_tracks(self, distance, _y):

   """

   获取轨迹参数

   """

   tracks = list()

   y, v, t, current = 0, 0, 1, 0

   mid = distance*3/4

   exceed = random.randint(40, 90)

   z = random.randint(30, 150)

   whilecurrent< (distance+exceed):

       ifcurrent<mid/2:

           a = 2

       elifcurrent<mid:

           a = 3

       else:

           a = -3

       a /= 2

       v0 = v

       s = v0*t+0.5*a* (t*t)

       current += int(s)

       v = v0+a*t

       y += random.randint(-3, 3)

       z = z+random.randint(5, 10)

       tracks.append([min(current, (distance+exceed)), y, z])

   whileexceed>0:

       exceed -= random.randint(0, 5)

       y += random.randint(-3, 3)

       z = z+random.randint(5, 9)

       tracks.append([min(current, (distance+exceed)), y, z])

   tr = []

   fori, xinenumerate(tracks):

       tr.append({

           'x': x[0],

           'y': _y,

           'relative_time': x[2]

       })

   returntr


生成验证参数并验证

captchaBody需要js生成

defcaptcha_verify(self, s_v_web_id, captchaBody):

   url = "aHR0cHM6Ly92ZXJpZnkuc25zc2RrLmNvbS9jYXB0Y2hhL3ZlcmlmeQ=="

   params = {

       "os_type": "2",

       "fp": s_v_web_id,

       "subtype": "slide",

   }

   data = {

       'captchaBody': captchaBody

   }

   r = self._parse_url(url=url, params=params, data=json.dumps(data))

   returnr.json()

效果

识别率成功率还是可以的


本文仅供学习交流使用,如侵立删!
相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
使用Python编写Web爬虫实现数据采集与分析
在当今信息化时代,数据是企业发展和决策的重要依据。本文将介绍如何使用Python编写Web爬虫来实现对特定网站数据的自动采集,并结合数据分析技术,为读者展示如何利用爬虫技术获取有价值的信息并进行有效的数据处理和分析。
|
6月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
185 1
|
8天前
|
Python 数据可视化 索引
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
24 0
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
|
8天前
|
机器学习/深度学习 算法 数据可视化
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
17 0
用SPSS Modeler的Web复杂网络对所有腧穴进行关联规则分析3
|
1月前
|
SQL 机器学习/深度学习 缓存
Go语言Web应用实战与案例分析
【2月更文挑战第21天】本文将通过实战案例的方式,深入探讨Go语言在Web应用开发中的应用。我们将分析一个实际项目的开发过程,展示Go语言在构建高性能、可扩展Web应用方面的优势,并分享在开发过程中遇到的问题和解决方案,为读者提供宝贵的实战经验。
|
9月前
Web server failed to start. Port XXX was already in use.原因分析-解决方案
Web server failed to start. Port XXX was already in use.原因分析-解决方案
166 1
Web server failed to start. Port XXX was already in use.原因分析-解决方案
|
2月前
|
前端开发 JavaScript Java
利用Java Web技术实现实时通信系统的案例分析
利用Java Web技术实现实时通信系统的案例分析
|
3月前
|
前端开发 JavaScript Java
系统化web前端需要技能所占比(通过图表分析来看您是不是一个合格的前端)
系统化web前端需要技能所占比(通过图表分析来看您是不是一个合格的前端)
36 0
|
3月前
|
缓存 负载均衡 应用服务中间件
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
在本章内容中,我们将深入探讨 Tomcat 服务器的运行架构、LVS 负载均衡的运行机制以及 Cache 缓存机制,并提供相应的解决方案和指导。通过理解这些关键概念和机制,您将能够优化您的系统架构,提高性能和可扩展性。
207 4
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
|
3月前
|
Web App开发 前端开发 JavaScript
使用 Chrome 开发者工具分析 UI5 Web 应用的性能
使用 Chrome 开发者工具分析 UI5 Web 应用的性能
33 0