日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python模擬嗶哩嗶哩滑塊登入驗證的實現(xiàn)

瀏覽:46日期:2022-07-29 10:06:54

準(zhǔn)備工具

pip3 install PIL pip3 install opencv-python pip3 install numpy 谷歌驅(qū)動

建議指定清華源下載速度會更快點

使用方法 : pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/opencv-python/

谷歌驅(qū)動谷歌驅(qū)動下載鏈接 :http://npm.taobao.org/mirrors/chromedriver/

前言

本篇文章采用的是cv2的Canny邊緣檢測算法進行圖像識別匹配。

Canny邊緣檢測算法參考鏈接:https://www.jb51.net/article/185336.htm

具體使用的是Canny的matchTemplate方法進行模糊匹配,匹配方法用CV_TM_CCOEFF_NORMED歸一化相關(guān)系數(shù)匹配。得出的max_loc就是匹配出來的位置信息。從而達到位置的距離。

難點

由于圖像采用放大的效果匹配出的距離偏大,難以把真實距離,并存在誤差。 由于嗶哩嗶哩滑塊驗證進一步采取做了措施,如果滑動時間過短,會導(dǎo)致驗證登入失敗。所以我這里采用變速的方法,在相同時間內(nèi)滑動不同的距離。 誤差的存在是必不可少的,有時會導(dǎo)致驗證失敗,這都是正常現(xiàn)象。

流程

1.實例化谷歌瀏覽器 ,并打開嗶哩嗶哩登入頁面。

2.點擊登陸,彈出滑動驗證框。

3.全屏截圖、后按照尺寸裁剪各兩張。

5.模糊匹配兩張圖片,從而獲取匹配結(jié)果以及位置信息 。

6.將位置信息與頁面上的位移距離轉(zhuǎn)化,并盡可能少的減少誤差 。

7.變速的拖動滑塊到指定位置,從而達到模擬登入。

效果圖

python模擬嗶哩嗶哩滑塊登入驗證的實現(xiàn)

代碼實例

庫安裝好后,然后填寫配置區(qū)域后即可運行。

from PIL import Imagefrom time import sleepfrom selenium import webdriverfrom selenium.webdriver import ActionChainsfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport cv2import numpy as npimport math############ 配置區(qū)域 #########zh=’’ #賬號pwd=’’ #密碼 # chromedriver的路徑chromedriver_path = 'C:Program Files (x86)GoogleChromeApplicationchromedriver.exe'####### end #########options = webdriver.ChromeOptions()options.add_argument(’--no-sandbox’)options.add_argument(’--window-size=1020,720’)# options.add_argument(’--start-maximized’) # 瀏覽器窗口最大化options.add_argument(’--disable-gpu’)options.add_argument(’--hide-scrollbars’)options.add_argument(’test-type’)options.add_experimental_option('excludeSwitches', ['ignore-certificate-errors', 'enable-automation']) # 設(shè)置為開發(fā)者模式driver = webdriver.Chrome(options=options, executable_path=chromedriver_path)driver.get(’https://passport.bilibili.com/login’)# 登入def login(): driver.find_element_by_id('login-username').send_keys(zh) driver.find_element_by_id('login-passwd').send_keys(pwd) driver.find_element_by_css_selector('#geetest-wrap > div > div.btn-box > a.btn.btn-login').click() print('點擊登入')# 整個圖,跟滑塊整個圖def screen(screenXpath): img = WebDriverWait(driver, 20).until( EC.visibility_of_element_located((By.XPATH, screenXpath)) ) driver.save_screenshot('allscreen.png') # 對整個瀏覽器頁面進行截圖 left = img.location[’x’]+160 #往右 top = img.location[’y’]+60 # 往下 right = img.location[’x’] + img.size[’width’]+230 # 往左 bottom = img.location[’y’] + img.size[’height’]+110 # 往上 im = Image.open(’allscreen.png’) im = im.crop((left, top, right, bottom)) # 對瀏覽器截圖進行裁剪 im.save(’1.png’) print('截圖完成1') screen_two(screenXpath) screen_th(screenXpath) matchImg(’3.png’,’2.png’)# 滑塊部分圖def screen_two(screenXpath): img = WebDriverWait(driver, 20).until( EC.visibility_of_element_located((By.XPATH, screenXpath)) ) left = img.location[’x’] + 160 top = img.location[’y’] + 80 right = img.location[’x’] + img.size[’width’]-30 bottom = img.location[’y’] + img.size[’height’] + 90 im = Image.open(’allscreen.png’) im = im.crop((left, top, right, bottom)) # 對瀏覽器截圖進行裁剪 im.save(’2.png’) print('截圖完成2')# 滑塊剩余部分圖def screen_th(screenXpath): img = WebDriverWait(driver, 20).until( EC.visibility_of_element_located((By.XPATH, screenXpath)) ) left = img.location[’x’] + 220 top = img.location[’y’] + 60 right = img.location[’x’] + img.size[’width’]+230 bottom = img.location[’y’] + img.size[’height’] +110 im = Image.open(’allscreen.png’) im = im.crop((left, top, right, bottom)) # 對瀏覽器截圖進行裁剪 im.save(’3.png’) print('截圖完成3')#圖形匹配def matchImg(imgPath1,imgPath2): imgs = [] #展示 sou_img1= cv2.imread(imgPath1) sou_img2 = cv2.imread(imgPath2) # 最小閾值100,最大閾值500 img1 = cv2.imread(imgPath1, 0) blur1 = cv2.GaussianBlur(img1, (3, 3), 0) canny1 = cv2.Canny(blur1, 100, 500) cv2.imwrite(’temp1.png’, canny1) img2 = cv2.imread(imgPath2, 0) blur2 = cv2.GaussianBlur(img2, (3, 3), 0) canny2 = cv2.Canny(blur2, 100, 500) cv2.imwrite(’temp2.png’, canny2) target = cv2.imread(’temp1.png’) template = cv2.imread(’temp2.png’) # 調(diào)整大小 target_temp = cv2.resize(sou_img1, (350, 200)) target_temp = cv2.copyMakeBorder(target_temp, 5, 5, 5, 5, cv2.BORDER_CONSTANT, value=[255, 255, 255]) template_temp = cv2.resize(sou_img2, (200, 200)) template_temp = cv2.copyMakeBorder(template_temp, 5, 5, 5, 5, cv2.BORDER_CONSTANT, value=[255, 255, 255]) imgs.append(target_temp) imgs.append(template_temp) theight, twidth = template.shape[:2] # 匹配跟拼圖 result = cv2.matchTemplate(target, template, cv2.TM_CCOEFF_NORMED) cv2.normalize( result, result, 0, 1, cv2.NORM_MINMAX, -1 ) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) # 畫圈 cv2.rectangle(target,max_loc,(max_loc[0]+twidth,max_loc[1]+theight),(0,0,255),2) target_temp_n = cv2.resize(target, (350, 200)) target_temp_n = cv2.copyMakeBorder(target_temp_n, 5, 5, 5, 5, cv2.BORDER_CONSTANT, value=[255, 255, 255]) imgs.append(target_temp_n) imstack = np.hstack(imgs) cv2.imshow(’windows’+str(max_loc), imstack) cv2.waitKey(0) cv2.destroyAllWindows() # 計算距離 print(max_loc) dis=str(max_loc).split()[0].split(’(’)[1].split(’,’)[0] x_dis=int(dis)+135 t(x_dis)#拖動滑塊def t(distances): draggable = driver.find_element_by_css_selector(’div.geetest_slider.geetest_ready > div.geetest_slider_button’) ActionChains(driver).click_and_hold(draggable).perform() #抓住 print(driver.title) num=getNum(distances) sleep(3) for distance in range(1,int(num)): print(’移動的步數(shù): ’,distance) ActionChains(driver).move_by_offset(xoffset=distance, yoffset=0).perform() sleep(0.25) ActionChains(driver).release().perform() #松開# 計算步數(shù)def getNum(distances): p = 1+4*distances x1 = (-1 + math.sqrt(p)) / 2 x2 = (-1 - math.sqrt(p)) / 2 print(x1,x2) if x1>=0 and x2<0: return x1+2 elif(x1<0 and x2>=0): return x2+2 else: return x1+2def main(): login() sleep(5) screenXpath = ’/html/body/div[2]/div[2]/div[6]/div/div[1]/div[1]/div/a/div[1]/div/canvas[2]’ screen(screenXpath) sleep(5)if __name__ == ’__main__’: main()

有能力的可以研究一下思路,然后寫出更好的解決辦法。

到此這篇關(guān)于python模擬嗶哩嗶哩滑塊登入驗證的實現(xiàn)的文章就介紹到這了,更多相關(guān)python 滑塊登入驗證內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: python
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本免费在线视频不卡一不卡二| 亚洲无线一线二线三线区别av| 成人亚洲欧美| 91精品国产自产在线丝袜啪| 一区二区电影| 亚洲ab电影| 偷拍亚洲精品| 日韩午夜视频在线| 日韩成人一级| 欧美一区91| 日韩av不卡一区二区| 日本亚洲不卡| 欧美亚洲人成在线| 国产精品综合色区在线观看| 国产精品久久久网站| 麻豆精品蜜桃视频网站| 精品三区视频| 亚洲精品福利电影| 亚洲黄色中文字幕| 亚洲高清激情| 六月天综合网| 日本国产欧美| 国产精品夜夜夜| 久久精品亚洲一区二区| 成人影视亚洲图片在线| 欧美一区久久久| 亚洲午夜电影| 视频一区二区三区在线| 日韩av在线免费观看不卡| 欧美激情99| 久久婷婷av| 男人的天堂久久精品| 久久国内精品| 成人在线免费观看网站| 久久久久久黄| 日韩在线播放一区二区| 7777精品| 久久毛片亚洲| 久久福利影视| 久久不卡日韩美女| 成人久久一区| 视频精品一区二区| 国产精品一线| 日韩欧美少妇| 中文字幕视频精品一区二区三区| 欧美一区二区三区久久精品| 成人台湾亚洲精品一区二区| 欧美日韩国产传媒| 色8久久久久| 热三久草你在线| 在线看片日韩| 黄色精品视频| 怡红院精品视频在线观看极品| 日韩激情中文字幕| 天堂日韩电影| 日韩不卡手机在线v区| 久久天堂av| 日韩精品国产欧美| 国产 日韩 欧美一区| 亚洲精品影视| 色在线视频观看| 亚洲精品系列| 日本免费一区二区三区四区| 蜜桃视频一区二区三区| 麻豆一区二区在线| 9色精品在线| 久久久久观看| 蜜臀a∨国产成人精品| 日韩国产欧美一区二区| 综合激情婷婷| 91tv亚洲精品香蕉国产一区| 日韩精品久久理论片| 欧美日韩在线观看视频小说| 国产日韩欧美一区二区三区在线观看 | 午夜日韩av| 国产精品mv在线观看| 视频一区在线播放| se01亚洲视频| 国产精品中文字幕制服诱惑| 日韩精品一二三| 亚洲天堂一区二区| 国产精品hd| 蜜桃传媒麻豆第一区在线观看| 日韩久久一区二区三区| 国产欧美日韩视频在线| 在线国产一区二区| 欧美xxxx性| 亚洲一区二区免费看| 黄色亚洲在线| 欧美1区2区3| 狠狠久久伊人中文字幕| 成午夜精品一区二区三区软件| 精品国产欧美日韩一区二区三区| 久久精品影视| 日韩国产成人精品| 99国产精品| 欧美日中文字幕| 美女视频一区在线观看| 日韩视频1区| 在线综合亚洲| 日韩精品麻豆| 97国产精品| 亚洲丝袜美腿一区| 亚洲黄色影院| 福利一区二区三区视频在线观看| 香蕉久久一区| 美美哒免费高清在线观看视频一区二区| 久久免费黄色| 日韩在线观看一区| zzzwww在线看片免费| 精品视频97| 黄色网一区二区| 久久精品三级| 麻豆国产欧美一区二区三区| 国产精品亚洲欧美一级在线| 日韩av中文字幕一区二区| 一级成人国产| 中文字幕视频精品一区二区三区 | 国产精品theporn| 欧美亚洲三区| 国产精品久久国产愉拍| 日本视频一区二区| 日本精品国产| 91精品日本| 久久国产三级| 欧美久久一区二区三区| 日本一区中文字幕| 日韩欧美中文在线观看| 日韩一区二区三区四区五区| 日韩午夜视频在线| 国产伦精品一区二区三区视频| 久久激情五月激情| 欧美亚洲福利| 欧美国产视频| 三上亚洲一区二区| 神马午夜在线视频| 久久久久国产精品一区三寸| 欧美日韩精品一区二区视频| 午夜国产欧美理论在线播放| 亚洲精华国产欧美| 蜜臀av一区二区在线免费观看| 亚洲精品综合| 国产亚洲高清一区| 久久在线91| 久久久一本精品| 婷婷色综合网| 中文字幕亚洲影视| 欧美亚洲一区二区三区| 国产精品午夜一区二区三区| 久久久久97| 99久久久久| 美女国产一区| 日韩精品免费一区二区夜夜嗨| 国产精品天天看天天狠| 日本精品黄色| 国产一区欧美| 亚洲18在线| 国产在线一区不卡| 欧美一区二区三区高清视频| 视频一区在线视频| 国产美女亚洲精品7777| 日韩av在线播放网址| 日韩不卡在线| 亚洲久久一区| 久久伊人久久| 亚洲精品小说| 97久久中文字幕| 98精品视频| 在线综合视频| 久久不卡国产精品一区二区| 蜜桃av在线播放| 久久成人国产| 另类综合日韩欧美亚洲| 另类中文字幕国产精品| 久久最新视频| 久久国产人妖系列| 色老板在线视频一区二区| 模特精品在线| 久久不卡国产精品一区二区| 亚洲无线一线二线三线区别av| 日韩精品一区二区三区中文 | 久久久久久久久久久9不雅视频| 国产精品毛片在线看| 日韩黄色av| 中文字幕系列一区| 日韩精选在线| 久久精品导航| 四虎在线精品| 精品国模一区二区三区| 无码日韩精品一区二区免费| 成人在线视频区| 亚洲综合小说| 久久久久.com| 国产精品www.| 一本一道久久a久久精品蜜桃| 欧美日韩夜夜| 欧美亚洲国产激情| 免费一级欧美片在线观看网站| 亚洲欧美久久| 日本激情一区|