婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題

python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題

熱門標簽:長春極信防封電銷卡批發 上海正規的外呼系統最新報價 如何地圖標注公司 煙臺電話外呼營銷系統 電銷機器人錄音要學習什么 銀川電話機器人電話 預覽式外呼系統 外賣地址有什么地圖標注 企業彩鈴地圖標注

前言

大家做自動化登錄時可能都遇到過滑塊驗證碼需要手動驗證的問題,這次我們就來解決他

如下:


  

在我們做自動化登錄時,總會遇到各種奇奇怪怪的驗證碼,滑塊驗證碼就是其中最常見的一種。若我們的程序自動輸入賬號密碼之后,還需要我們人工去滑動驗證碼那還能稱得上是自動化嗎?
那么先給大家說一下我的‘解題步驟'。

1.使用selenium打開郵箱首頁。
2.定位到賬號密碼框,鍵入賬號密碼。
3.獲取驗證圖片,使用opencv處理返回滑塊應拖動的距離。
4.創建鼠標事件,模擬拖動滑塊完成驗證。

  需要解決的問題:

1.頁面元素的定位。
2.文本框和驗證碼的frame嵌套。
3.opencv處理驗證圖片缺口圖像匹配并返回距離。
4.webdriver在網頁中使用xpath時如何定位自身元素。
5.原始圖片尺寸與在網頁中的實際尺寸同比例縮放(距離的縮放)。

  OK,思路清晰上代碼!??!

  源代碼:

#滑稽研究所出品
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains
from selenium import webdriver

import requests
import time
import cv2

#下載圖片
def download_img(url,filename):
    r = requests.get(url)
    with open( filename + '.png', 'wb') as f:
        # 對于圖片類型的通過r.content方式訪問響應內容,將響應內容寫入yanzheng.png中
        f.write(r.content)
        print(filename + '下載完成')

def get_image():
    #為什么這里要定義全局變量?因為driver在函數內,函數運行完畢就會關閉,
    #相應的網頁也會被關閉,這就是網上很多問為什么網頁會自動關閉的原因。
    global driver
    driver= webdriver.Chrome() #獲取瀏覽器對象
    driver.get("https://mail.qq.com/") #加載百度首頁
    #窗口最大化操作,如果窗口過小,會導致后續拖動滑塊時出現視野丟失的問題
    driver.maximize_window()
    time.sleep(2) #睡眠兩秒

    driver.find_element_by_xpath('/html/body/div/div[2]/div/div[1]/div/div[1]/div[2]').click()

    time.sleep(1)

    driver.switch_to.frame('login_frame')
    # driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()

    #輸入賬號密碼
    input=driver.find_element_by_xpath('//*[@id="u"]')#定位QQ賬號框
    time.sleep(1)
    input.send_keys("zhanghao") #搜索框輸入內容

    input=driver.find_element_by_xpath('//*[@id="p"]')#定位QQ密碼框
    input.send_keys("你的密碼") #搜索框輸入內容
    print('賬號密碼輸入完成。')
    #這里停頓一下,不然不會顯示滑動驗證,應該是檢測自動化工具的手段。(反爬)
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="login_button"]').click()

    #注意我們這里又需要跳到驗證碼的子框(又一個嵌套)
    time.sleep(1)
    driver.switch_to.frame('tcaptcha_iframe')
    #webdriver的定位方法和瀏覽器xpath不一樣,不能直接定位到標簽的屬性.
    #需要首先定位到webelement,之后get到屬性!!!!!!!
    bk = driver.find_element_by_xpath('//*[@id="slideBg"]').get_attribute('src')
    print(bk)
    #獲取背景和滑塊地址,下載到本地。
    key = driver.find_element_by_xpath('//*[@id="slideBlock"]').get_attribute('src')
    print(bk)

    download_img(bk,filename= 'bk')
    download_img(key,filename= 'key')

    #鎖定滑塊
    slider = driver.find_element_by_xpath('//*[@id="tcaptcha_drag_thumb"]')
    #獲取應滑動距離
    dis = get_distance()
    print(dis)

    #滑塊部分,沒有問題,已完成。
    newact =  ActionChains(driver)
    newact.click_and_hold(slider).perform()

    newact.move_by_offset(xoffset=dis-20,yoffset=0).perform()
    time.sleep(0.5)
    newact.release().perform()

#處理得到滑塊應移動的距離。
def get_distance():
    path = 'bk.png'
    img = cv2.imread(path)

    path = 'key.png'
    img2 = cv2.imread(path)

    imgContour = img.copy()
    print('img.shape:', img.shape)

    imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    imgBlur = cv2.GaussianBlur(imgGray, (3, 3), 1)
    imgCanny = cv2.Canny(imgBlur, 400, 500)

    imgGray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
    imgBlur2 = cv2.GaussianBlur(imgGray2, (3, 3), 1)
    imgCanny2 = cv2.Canny(imgBlur2, 400, 500)

    cv2.imshow("O", imgCanny)

    # 匹配拼圖
    result = cv2.matchTemplate(imgCanny, imgCanny2, 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)

    print('min_loc:', min_loc)
    print('max_loc:', max_loc)

    # 匹配后結果畫圈
    cv2.rectangle(imgContour, max_loc, (max_loc[0] + 135, max_loc[1] + 135), (0, 0, 255), 2)

    # 原圖為680*390 在瀏覽器resize為280*161,這里我們只用到寬。所以需要進行同比例縮放。
    res = min_loc[0] / (680 / 280)

    cv2.imshow("Canny Image", imgContour)
    #這里不可以用0,因為圖片窗口會一直顯示,程序卡住無法return出距離給滑塊功能使用。
    cv2.waitKey(100)
    print('應滑動距離獲取成功。')
    return res

if __name__ == '__main__':
    get_image()

  下面是運行結果,兩種不同的驗證碼背景圖都可以正確識別出來。紅框為代碼識別缺口之后標記的紅框

  可以看到在跳出驗證碼之后,我們的程序正確的識別到了缺口的位置,并且正確的返回了縮放后的距離。模擬的鼠標事件完美的把滑塊拖動到了缺口的位置。提示我們驗證成功,不過我們并沒有給代碼正確的賬號和密碼因此會提醒我們賬號或密碼錯誤。大家只需填入正確的賬號密碼即可成功登入。非常的好用~
  需要注意一個問題,就是要保持網絡的穩定,不要有太大波動。長時間加載不出來頁面元素,就會出現獲取不到頁面元素的報錯。
  所有可能遇到的問題,我都在代碼注釋中寫了出來,非常詳細。隔壁老大爺看了之后都說好。
  那么本期文章到這里就結束了,后續有什么問題可以私信我或者在評論區滴滴我嗷~
  給大家比個心嗷!

到此這篇關于python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題的文章就介紹到這了,更多相關python selenium滑動驗證內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Python 使用 selenium 進行自動化測試或者協助日常工作
  • Python利用Selenium實現網站自動簽到功能
  • Selenium+Python自動化腳本環境搭建的全過程
  • 利用Python+Selenium破解春秋航空網滑塊驗證碼的實戰過程
  • python Selenium等待元素出現的具體方法
  • Python使用Selenium自動進行百度搜索的實現
  • Python中Selenium對Cookie的操作方法
  • 用Python selenium實現淘寶搶單機器人
  • 教你用Python+selenium搭建自動化測試環境
  • Python selenium的這三種等待方式一定要會!
  • Python爬蟲實戰之用selenium爬取某旅游網站
  • 教你如何使用Python selenium
  • python Web應用程序測試selenium庫使用用法詳解

標簽:上饒 西寧 宜昌 佳木斯 潮州 盤錦 珠海 湖北

巨人網絡通訊聲明:本文標題《python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題》,本文關鍵詞  python+opencv+selenium,自動化,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題》相關的同類信息!
  • 本頁收集關于python+opencv+selenium自動化登錄郵箱并解決滑動驗證的問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91免费看`日韩一区二区| 欧美一级视频精品观看| 欧美视频一区在线| 亚洲午夜精品久久久久久久久| 亚洲乱码国产乱码精品精的特点 | 伊人色综合久久天天| 国产成a人亚洲| 精品欧美一区二区久久 | 91高清在线观看| 中文字幕免费观看一区| 蜜桃视频免费观看一区| 欧美日韩国产区一| 日韩不卡一二三区| 日韩欧美高清一区| 国产在线一区二区| 亚洲美女视频一区| 欧美剧在线免费观看网站| 欧美a级一区二区| 中文字幕成人在线观看| 色诱亚洲精品久久久久久| 亚洲一卡二卡三卡四卡五卡| 日韩欧美美女一区二区三区| 国产成人av一区二区三区在线| 91社区在线播放| 日本三级亚洲精品| 国产精品嫩草久久久久| 欧美日韩在线直播| 国产91在线观看丝袜| 午夜精品久久久久久久蜜桃app| 美女视频一区在线观看| 亚洲码国产岛国毛片在线| 91精品国产一区二区| 91免费在线看| 国产乱码精品一区二区三区av| 色久综合一二码| 九九九精品视频| 午夜激情一区二区三区| 亚洲乱码国产乱码精品精可以看| 亚洲成人av一区| 亚洲免费av高清| 中文字幕不卡一区| 久久精品这里都是精品| 日韩欧美卡一卡二| 精品乱人伦小说| 日韩欧美中文字幕制服| 日韩亚洲欧美一区| 这里是久久伊人| 91精品国产欧美日韩| 精品精品国产高清a毛片牛牛| 精品在线观看视频| 精品一区中文字幕| 久久超碰97人人做人人爱| 久久99国产精品免费| 香蕉成人啪国产精品视频综合网| 欧美日韩精品免费观看视频 | 尤物在线观看一区| 欧美电影免费观看完整版| 欧美日韩一区二区三区在线看| 亚洲高清久久久| 亚瑟在线精品视频| 青青草成人在线观看| 国产凹凸在线观看一区二区| 99在线精品视频| 欧美一级高清大全免费观看| 中文久久乱码一区二区| 一区二区三区 在线观看视频| 制服.丝袜.亚洲.中文.综合| 26uuu国产日韩综合| 国产精品久久国产精麻豆99网站| 欧美日韩在线播| 久久久久88色偷偷免费| 亚洲一区二区三区爽爽爽爽爽| 欧美一区二区三区在线观看| 国产精品国产三级国产aⅴ入口| 91蜜桃免费观看视频| 宅男噜噜噜66一区二区66| 亚洲国产精品高清| 国产精品白丝jk白祙喷水网站| 三级成人在线视频| 色网站国产精品| 亚洲国产精品综合小说图片区| 欧美高清视频一二三区 | 国产伦精品一区二区三区视频青涩 | 欧美日韩在线亚洲一区蜜芽| 久久婷婷一区二区三区| 理论电影国产精品| 精品毛片乱码1区2区3区| 蜜臀99久久精品久久久久久软件 | 精品国产免费一区二区三区四区| 91久久一区二区| 午夜激情一区二区| 日韩欧美在线影院| 国产精品一二三区| 日韩毛片精品高清免费| 91丝袜国产在线播放| 亚洲一区免费在线观看| 欧洲av在线精品| 蜜臀av国产精品久久久久| 日韩一区二区三区电影| 国产不卡视频在线播放| 国产精品乱码一区二区三区软件| 一二三区精品视频| 91精品免费观看| 国产制服丝袜一区| 一区二区三区欧美亚洲| 欧美一区二区三区播放老司机| 久久嫩草精品久久久精品| 夫妻av一区二区| 爽爽淫人综合网网站| 自拍偷拍国产精品| 美女视频免费一区| 日韩一区二区三区视频在线 | 欧美一区二区三区影视| 裸体歌舞表演一区二区| 亚洲精品欧美激情| 综合激情网...| 国产精品看片你懂得| 91精品国产aⅴ一区二区| 在线观看视频91| 91亚洲大成网污www| 成人晚上爱看视频| 国产精品一区二区久久精品爱涩| 欧美日韩aaaaaa| 91成人免费在线| 在线一区二区观看| 色婷婷激情综合| caoporn国产一区二区| 97精品视频在线观看自产线路二| 久久久久久久网| 在线不卡a资源高清| 777亚洲妇女| 日韩欧美中文字幕制服| 精品久久久久一区| 久久午夜色播影院免费高清| 久久这里只精品最新地址| 国产日韩欧美a| 一区二区三区在线视频播放 | 99久久99久久久精品齐齐| 99re成人精品视频| 欧美亚洲一区三区| 在线观看一区二区精品视频| 欧美日韩成人一区二区| 精品国产免费视频| 国产精品九色蝌蚪自拍| 日韩经典一区二区| 成人免费高清在线| 欧美一区二区网站| 中文字幕一区二区三区av| 亚洲一区二区美女| 国产精品99久久久久| 欧美丝袜丝交足nylons图片| 久久夜色精品一区| 亚洲宅男天堂在线观看无病毒| 欧美精品一区二区三区高清aⅴ| 久久精品国产免费| 91在线视频播放地址| 精品国产一区二区亚洲人成毛片| 国产成人午夜精品影院观看视频 | 波多野结衣精品在线| 日韩你懂的在线观看| 亚洲国产sm捆绑调教视频| 国产精品1区2区3区| 精品久久久久久久久久久久久久久久久 | 国产精品18久久久久久vr| 欧美精选午夜久久久乱码6080| 成人高清免费观看| 久久网这里都是精品| 精品一区二区免费在线观看| 日韩视频在线你懂得| 午夜电影一区二区| 91精品在线观看入口| 精品一区二区免费看| 精品国产伦一区二区三区观看体验| 欧美日韩一级视频| 亚洲成人福利片| 国产原创一区二区| 色综合久久久久综合体桃花网| 麻豆极品一区二区三区| 久久精品无码一区二区三区| 久久精品国产亚洲a| 久久人人爽爽爽人久久久| 国产精品影视网| 亚洲国产日韩综合久久精品| 7878成人国产在线观看| 久久99国产精品免费网站| 中文字幕第一区综合| 欧美在线你懂得| 高清在线成人网| 午夜精品久久久久久久99水蜜桃| 无码av中文一区二区三区桃花岛| 狠狠色丁香婷综合久久| 国产亚洲精品7777| 欧美日韩三级视频| 丁香婷婷综合色啪| 蜜臀av在线播放一区二区三区| 在线欧美日韩国产| 成人avav影音| 成人激情免费网站| 国产麻豆成人精品| 国产精品一二三区在线|