最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

抖音 滑塊驗(yàn)證方案 s_v_web_id 參數(shù)分析

2022-08-06 14:36 作者:拉燈的小手  | 我要投稿

?本文所有教程及源碼、軟件僅為技術(shù)研究。不涉及計(jì)算機(jī)信息系統(tǒng)功能的刪除、修改、增加、干擾,更不會(huì)影響計(jì)算機(jī)信息系統(tǒng)的正常運(yùn)行。不得將代碼用于非法用途,如侵立刪!

抖音web端 s_v_web_id 參數(shù)生成分析與實(shí)現(xiàn)

操作環(huán)境

  • win10

  • Python3.9


更新:2023.2.14

今天驗(yàn)證改成了點(diǎn)選驗(yàn)證,分析了一波



分析

s_v_web_id 作用:web端使用滑塊后的s_v_web_id 參數(shù)可以實(shí)現(xiàn)免signature驗(yàn)證 s_v_web_id 生成:在驗(yàn)證碼中間頁(yè)的html中的fp參數(shù)就是s_v_web_id ?詳細(xì)介紹這邊就不在贅述,可以參考下璽佬的文章:s_v_web_id介紹 生成方案:

  • Python + selenium 自動(dòng)化過(guò)滑塊

  • RPC遠(yuǎn)程調(diào)用自動(dòng),驗(yàn)證滑塊

這兩種方案有個(gè)前提是頁(yè)面必須出現(xiàn)滑塊才可以(之前搜素視頻會(huì)強(qiáng)制滑塊效驗(yàn)),具體過(guò)滑塊的方法璽佬都已經(jīng)分享過(guò)。 ?現(xiàn)在應(yīng)該是web端有更新,現(xiàn)在搜索頁(yè)面只有綜合會(huì)出點(diǎn)選驗(yàn)證,視頻和用戶頁(yè)面都沒(méi)有強(qiáng)制滑塊驗(yàn)證了,清cookie和開(kāi)無(wú)痕都沒(méi)辦法觸發(fā)滑塊,經(jīng)過(guò)幾天的分析研究出以下方案 最新解決方案:

  • 通過(guò)js生成滑塊s_v_web_id

  • 識(shí)別滑塊

  • 生成驗(yàn)證參數(shù)并驗(yàn)證

  • 驗(yàn)證通過(guò)后就可正常使用了

2022-8-6 更新:報(bào)錯(cuò)當(dāng)前網(wǎng)絡(luò)不穩(wěn)定,請(qǐng)稍后再試

問(wèn)題:下載驗(yàn)證碼圖片報(bào)錯(cuò):當(dāng)前網(wǎng)絡(luò)不穩(wěn)定,請(qǐng)稍后再試

解決:在請(qǐng)求參數(shù)中增加參數(shù) "app_name": "" ?

通過(guò)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是不可以用來(lái)采集評(píng)論的,評(píng)論驗(yàn)證使用的s_v_web_id需要從頁(yè)面取下來(lái),然后在拿著過(guò)滑塊,此處再次感謝璽佬@李璽

識(shí)別滑塊

def calculate_distance(self, pic1_path, pic2_path):
? ?"""
? ?計(jì)算滑塊到缺口的距離
? ?"""
? ?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):
? ?"""
? ?獲取軌跡參數(shù)
? ?"""
? ?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

生成驗(yàn)證參數(shù)并驗(yàn)證

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()

效果

識(shí)別率成功率還是可以的

本文僅供學(xué)習(xí)交流使用,如侵立刪!


抖音 滑塊驗(yàn)證方案 s_v_web_id 參數(shù)分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
丰镇市| 万荣县| 罗田县| 朝阳市| 当阳市| 永寿县| 綦江县| 宁海县| 康马县| 怀远县| 如东县| 静安区| 商都县| 秦皇岛市| 麻江县| 遂昌县| 祁门县| 准格尔旗| 海南省| 鸡泽县| 无棣县| 察隅县| 桦甸市| 溆浦县| 格尔木市| 开江县| 商都县| 清苑县| 武义县| 金秀| 浦北县| 班戈县| 察哈| 淅川县| 东港市| 崇义县| 紫阳县| 银川市| 竹山县| 四会市| 远安县|