五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

分享到微博請遵守國家法律
鸡西市| 宁明县| 齐河县| 洛浦县| 府谷县| 勐海县| 通山县| 宜川县| 四会市| 巴林左旗| 赣榆县| 岗巴县| 惠州市| 鄯善县| 永清县| 涟水县| 綦江县| 天门市| 满洲里市| 勐海县| 车险| 宜黄县| 修文县| 云和县| 宝山区| 丽江市| 安吉县| 翁牛特旗| 和平县| 芜湖市| 三台县| 吉安县| 曲阜市| 宝丰县| 辉县市| 富源县| 都昌县| 东莞市| 桓台县| 五原县| 桃源县|