抖音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 生成方案:

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

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

  • 通过js生成滑块s_v_web_id
  • 识别滑块
  • 生成验证参数并验证
  • 经过验证,可以正常使用。
    [En]

    after verification, it can be used normally.*

通过js生成滑块s_v_web_id

function create_s_v_web_id() {    var e = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("")      , t = e.length      , n = (new Date).getTime().toString(36)      , r = [];    r[8] = r[13] = r[18] = r[23] = "_",    r[14] = "4";    for (var o, 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需要从页面取下来,然后在拿着过滑块,此处再次感谢玺佬@李玺

识别滑块

def calculate_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))
    return dis_x, dis_y

def get_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)
    while current < (distance + exceed):
        if current < mid / 2:
            a = 2
        elif current < 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])
    while exceed > 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 = []
    for i, x in enumerate(tracks):
        tr.append({
            'x': x[0],
            'y': _y,
            'relative_time': x[2]
        })
    return tr

生成验证参数并验证

captchaBody需要js生成

def captcha_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))
    return r.json()

效果

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

| |
| :—: |
| 本文仅供学习交流使用,如侵立删! |

Original: https://blog.51cto.com/u_14262285/5512833
Author: 拉灯的小手
Title: 抖音web端 s_v_web_id 参数生成分析与实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504876/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 基于tauri打造的HTTP API客户端工具-CyberAPI

    国庆长假和朋友聚会的时候,和朋友谈起最近这段时间捣鼓tauri,写了一个HTTP API客户端工具。『你写了这么多东西,其实有想过是为了啥不?』为了啥这是一个很大的命题,当初每个项…

    Python 2023年10月18日
    087
  • 时序分析28 – 时序预测 格兰杰因果关系(中) python实践1

    时序分析28 – 时序预测 – 格兰杰因果关系(中) Python 实践 1 上一篇文章我们介绍了格兰杰因果关系的基本概念、背景以及相关统计检验法。本篇文章…

    Python 2023年8月20日
    063
  • 通过conda安装python各种包踩过的坑

    Anaconda是一个用于科学计算的Python发行版。 可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令 conda 来进行p…

    Python 2023年9月9日
    053
  • Pycharm创建虚拟环境

    目录 一、pycharm创建虚拟环境一般步骤 一、pycharm创建虚拟环境一般步骤 1、首先打开pycharm下的terminal 以下所有代码都在terminal输入。 2、创…

    Python 2023年8月2日
    056
  • pandas数据分析库

    Pandas基本介绍 Python在数据处理和准备⽅⾯⼀直做得很好,但在数据分析和建模⽅⾯就差⼀些。pandas帮助填补了这⼀空⽩,使您能够在Python中执⾏整个数据分析⼯作流程…

    Python 2023年8月8日
    046
  • python画平行坐标图_Matplotlib中的平行坐标图

    使用传统的绘图类型可以相对直观地查看二维和三维数据。即使是四维数据,我们也经常能找到显示数据的方法。不过,4维以上的维度越来越难以显示。幸运的是,parallel coordina…

    Python 2023年9月6日
    057
  • Windows下Anaconda配置国内源的不同方法

    目录 治标的方法 治本的方法 pip 通过pip命令进行源的配置 修改pip.ini文件进行源的配置 conda 通过conda命令进行源的配置 修改”.condarc…

    Python 2023年9月8日
    053
  • pywinauto

    pywinauto (仅作为个人笔记,如有雷同,请联系删除。。) == Pywinauto==是基于Python开发的,用于自动化测试的脚本模块,主要操作于Windows标准图形界…

    Python 2023年8月1日
    0118
  • 【强化学习】Sarsa算法详解以及用于二维空间探索【Python实现】

    Sarsa算法,是基于Q-Learning算法。改动其实很小。 本文工作基于之前的Q-Learning的项目,如果有疑问可以看下面两个问题: Sarsa算法细节 本质上,也是维护 …

    Python 2023年8月28日
    093
  • jupyter notebook 某个cell 一直在运行

    近期调试程序,发现一简单的代码一直在运行,很长时间不终止,代码如下: whole_df=pd.read_csv(r’./train.csv’) community=whole_df…

    Python 2023年8月7日
    045
  • 浏览器原理之跨域?跨站?你真的不懂我!

    跨域这个东西,额……抱歉,跨域不是个东西。大家一定都接触过,甚至解决过因跨域引起的访问问题,无非就是本地代理,服务器开白名单。但是,但是!你真的知道跨域背后…

    Python 2023年10月20日
    035
  • bbs首页搭建(根据用户是否登录展示不同的内容)

    前端部分(主要是if进行一个判断) 判断是否登录,登录了展示不同内容! <ul class="nav navbar-nav navbar-right"&g…

    Python 2023年10月31日
    052
  • 【Java】反射, 枚举,Lambda表达式

    ✨系列专栏: 【Java SE】✨一句短话:难在坚持,贵在坚持,成在坚持! 文章目录 一. 反射 * 1. 反射的概述 2. 反射的使用 – 2.1 反射常用的类 2….

    Python 2023年9月27日
    053
  • 模型压缩(二)yolov5剪枝

    一、yolov5s 在yolov5s.ymal文件中, depth_multiple: 0.33 # model depth multiplewidth_multiple: 0.5…

    Python 2023年9月30日
    058
  • Python 冒泡排序法

    #冒泡排序法:是一种简单直观的排序算法。 它反复访问要排序的序列,一次比较两个元素,如果它们的顺序错误,则交换它们。 [En] It repeatedly visits the s…

    Python 2023年5月25日
    098
  • 基于pytorch用yolov5算法实现目标检测与分割

    适合新手入门玩一下目标的检测和分割,大概了解yolov5算法的一些基本操作。 1.1 课题背景 目标检测的目的是判断在单张图片或者连续图片(视频)中,感兴趣的单个或者 多个物体是否…

    Python 2023年9月16日
    048
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球