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

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

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

2022-07-26 02:59 作者:拉燈的小手  | 我要投稿

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

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

操作環(huán)境

  • win10

  • Python3.9

分析

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

  • Python + selenium 自動化過滑塊

  • RPC遠程調(diào)用自動,驗證滑塊

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

  • 通過js生成滑塊s_v_web_id

  • 識別滑塊

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

  • 驗證通過后就可正常使用了

通過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):
? ?"""
? ?獲取軌跡參數(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

生成驗證參數(shù)并驗證

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 參數(shù)生成分析與實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
扶余县| 崇义县| 景德镇市| 芒康县| 潼关县| 长顺县| 古丈县| 当涂县| 威宁| 岳池县| 衡东县| 通化市| 广河县| 滨州市| 漾濞| 葵青区| 桐乡市| 都江堰市| 龙江县| 岑溪市| 临城县| 菏泽市| 定西市| 孝义市| 诸城市| 曲靖市| 黎城县| 微山县| 林周县| 苏州市| 宣恩县| 贵德县| 新绛县| 讷河市| 云霄县| 神农架林区| 海宁市| 大厂| 正安县| 松溪县| 天津市|