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

歡迎光臨散文網(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)的評論 (共 條)

分享到微博請遵守國家法律
宜都市| 会东县| 辽源市| 抚顺县| 漯河市| 涪陵区| 堆龙德庆县| 永昌县| 麦盖提县| 修武县| 永城市| 丰都县| 平武县| 潼南县| 惠来县| 宜章县| 韶山市| 昌乐县| 永泰县| 吉安县| 阿城市| 朔州市| 朝阳区| 思茅市| 新田县| 徐州市| 满洲里市| 台中市| 德昌县| 定安县| 青阳县| 晋州市| 西林县| 库伦旗| 康乐县| 烟台市| 和政县| 信丰县| 大同市| 黄梅县| 祁连县|