婷婷综合国产,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
    555www色欧美视频| av男人天堂一区| 亚洲va在线va天堂| 亚洲欧美日韩综合aⅴ视频| 欧美激情资源网| 久久综合狠狠综合久久综合88 | 欧美tickling挠脚心丨vk| 在线不卡的av| 日韩欧美国产小视频| 日韩精品中文字幕在线不卡尤物| 欧美精品一级二级三级| 91精品视频网| 久久免费看少妇高潮| 国产午夜精品一区二区三区四区| 国产日韩精品久久久| 国产精品久久久久久久久免费樱桃 | 成人网在线免费视频| 国产不卡视频一区二区三区| 成人午夜电影久久影院| 在线观看亚洲精品| 91精品久久久久久久久99蜜臂| 欧美成人伊人久久综合网| 久久久www成人免费毛片麻豆| 中文成人综合网| 亚洲成a人片在线不卡一二三区| 日韩精品一区第一页| 国产精品自拍三区| 日本黄色一区二区| 欧美精品日韩综合在线| 精品毛片乱码1区2区3区| 中文字幕成人网| 午夜精品123| 国产精品一品二品| 在线观看中文字幕不卡| 精品久久久久久久久久久久久久久久久 | 国产欧美精品在线观看| 亚洲一二三四在线| 国产自产高清不卡| 欧美三级午夜理伦三级中视频| 精品国内片67194| 洋洋成人永久网站入口| 狠狠狠色丁香婷婷综合久久五月| 91首页免费视频| 久久久久久久久一| 亚洲高清视频的网址| 国产老肥熟一区二区三区| 在线观看一区二区精品视频| 国产日韩精品视频一区| 免费观看在线综合色| 91福利小视频| 国产精品视频在线看| 精品在线观看视频| 欧美日韩在线三级| 国产精品高潮呻吟| 国产精品一级片在线观看| 欧美日韩二区三区| 一区二区在线电影| 99久久精品一区| 久久精品这里都是精品| 久久精品国产精品亚洲综合| 欧美午夜理伦三级在线观看| 中文字幕亚洲精品在线观看| 精品一区二区三区香蕉蜜桃 | 日韩一区二区免费电影| 亚洲一区二区三区三| 91国偷自产一区二区开放时间 | 久久先锋资源网| 青青草精品视频| 51精品秘密在线观看| 一区二区三区精品视频| 91在线国产福利| 国产精品高潮呻吟| 91伊人久久大香线蕉| 中文字幕中文字幕中文字幕亚洲无线| 国产在线精品一区二区三区不卡| 制服丝袜在线91| 日韩电影免费一区| 欧美高清激情brazzers| 日本中文字幕一区二区视频| 欧美日韩在线播放| 日本色综合中文字幕| 日韩一区二区高清| 精品一区二区三区不卡| 久久久久久黄色| 岛国精品在线播放| 亚洲精品国产精华液| 欧美日韩激情在线| 日韩va欧美va亚洲va久久| 日韩免费一区二区三区在线播放| 精品中文字幕一区二区小辣椒| 精品成人一区二区三区四区| 国产凹凸在线观看一区二区| 国产精品久久毛片a| 91黄色免费看| 九色综合狠狠综合久久| 国产清纯在线一区二区www| 成人免费毛片app| 亚洲一区二区三区在线看| 制服丝袜亚洲精品中文字幕| 精品一区二区三区免费观看| 国产精品久久久久永久免费观看| 在线视频国内一区二区| 麻豆视频观看网址久久| 国产精品国产三级国产aⅴ原创| 欧美日本在线一区| 国产一区二区三区香蕉 | 国产乱码精品一区二区三| 亚洲色图欧美偷拍| 日韩一区二区麻豆国产| 成人av影院在线| 蜜臀国产一区二区三区在线播放 | 午夜精品久久久久久久99樱桃 | 一区二区成人在线视频| 欧美成人三级在线| 欧美亚洲图片小说| 国产剧情av麻豆香蕉精品| 亚洲成a人在线观看| 国产精品天美传媒| 日韩视频在线一区二区| 日本精品视频一区二区三区| 久久精品国产在热久久| 亚洲激情av在线| 国产亚洲精品bt天堂精选| 3atv一区二区三区| 欧美午夜一区二区三区免费大片| 国产成人8x视频一区二区| 日韩不卡一区二区| 亚洲高清免费在线| 一区二区在线观看免费| 国产精品大尺度| 国产亚洲婷婷免费| 日韩欧美一区中文| 欧美日韩国产综合视频在线观看| 成人综合婷婷国产精品久久| 久久99精品久久久| 麻豆成人免费电影| 日本亚洲免费观看| 亚洲第一福利一区| 一区二区三区四区在线免费观看| 中文无字幕一区二区三区| 久久综合九色综合欧美亚洲| 91麻豆精品国产自产在线观看一区 | 色综合久久六月婷婷中文字幕| 国产成人精品亚洲午夜麻豆| 韩国成人精品a∨在线观看| 石原莉奈在线亚洲二区| 亚洲国产你懂的| 亚洲成人激情自拍| 亚洲一区电影777| 亚洲一区二区三区在线看| 亚洲一区二区欧美激情| 亚洲午夜羞羞片| 亚洲成人第一页| 日韩中文欧美在线| 美女脱光内衣内裤视频久久影院| 捆绑调教美女网站视频一区| 蜜臀久久久99精品久久久久久| 久久99精品国产.久久久久| 国内成人精品2018免费看| 国产一区二区久久| 成人国产一区二区三区精品| av电影在线观看一区| 91国偷自产一区二区使用方法| 91国模大尺度私拍在线视频| 欧美日本国产视频| 精品美女一区二区| 成人免费一区二区三区视频 | 久久66热re国产| 成人理论电影网| 欧美色老头old∨ideo| 7777精品久久久大香线蕉| www激情久久| 中文字幕一区二区三区不卡| 一区二区高清视频在线观看| 免费成人在线视频观看| 国产精品一二三四区| 91麻豆成人久久精品二区三区| 欧美日韩成人综合在线一区二区 | 色爱区综合激月婷婷| 91精品国产一区二区人妖| 国产欧美一区二区精品性色| 亚洲激情在线激情| 国产自产视频一区二区三区| 在线观看一区二区视频| 精品久久久久久久久久久久久久久| 国产精品成人在线观看| 天天影视色香欲综合网老头| 成人综合婷婷国产精品久久蜜臀 | 中文字幕在线一区二区三区| 日韩av电影免费观看高清完整版 | 亚洲国产精品ⅴa在线观看| 亚洲免费观看在线视频| 久久国产日韩欧美精品| 色噜噜狠狠色综合欧洲selulu| 欧美变态口味重另类| 一区二区三区免费| 粉嫩一区二区三区在线看| 欧美久久久久久蜜桃| 亚洲欧美激情小说另类| 国产99久久久久久免费看农村|