婷婷综合国产,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
    精品国产免费人成电影在线观看四季| 国产成人激情av| 26uuuu精品一区二区| 丁香五精品蜜臀久久久久99网站| 欧美成人猛片aaaaaaa| 国产精品91一区二区| 国产精品毛片无遮挡高清| 精品不卡在线视频| 狠狠色狠狠色合久久伊人| 精品少妇一区二区三区视频免付费| 日韩一区精品视频| 夜夜嗨av一区二区三区网页| 色婷婷亚洲精品| 久久精品在线观看| 欧美老年两性高潮| 久久99国产精品成人| 亚洲免费三区一区二区| 欧美一区二区三区在| 7777精品伊人久久久大香线蕉经典版下载 | 91在线云播放| 久草在线在线精品观看| 亚洲色图制服丝袜| 亚洲日本乱码在线观看| 亚洲欧美日韩国产手机在线| 久久综合久久综合久久综合| 91精品国产欧美一区二区成人 | 一区二区三区在线看| 国产精品丝袜在线| 精品国产乱码久久久久久浪潮| 精品日韩成人av| 色8久久人人97超碰香蕉987| 亚洲欧美国产77777| 国产人久久人人人人爽| 久久精品一区四区| 亚洲少妇屁股交4| 最新高清无码专区| 一区二区三区在线观看视频| 亚洲三级视频在线观看| 国产清纯白嫩初高生在线观看91| 欧美国产97人人爽人人喊| 99精品视频在线播放观看| 成人app在线| 欧美日韩综合在线| 中文字幕在线观看一区二区| 国产三区在线成人av| 亚洲国产精品成人综合| 精品一二线国产| 欧美日本韩国一区| 精品免费国产一区二区三区四区| 亚洲精品你懂的| 国产精品白丝jk白祙喷水网站| 精品欧美乱码久久久久久1区2区| 亚洲精品你懂的| 91成人看片片| 国产精品视频在线看| 日本欧美加勒比视频| 在线精品视频免费播放| 一区二区在线电影| www.成人在线| 极品少妇xxxx精品少妇偷拍| 久久99最新地址| 国产成人免费视频一区| 亚洲精品在线三区| 麻豆视频一区二区| 91免费看`日韩一区二区| 精品国产一二三| 亚洲一区二区三区四区在线免费观看 | 在线观看av一区| 精品人伦一区二区色婷婷| 亚洲国产精品一区二区www在线| 91久久精品一区二区| 欧洲精品在线观看| 亚洲电影你懂得| 日韩视频一区二区三区| 亚洲精品国产一区二区精华液| 日韩精品免费专区| 国产日韩欧美综合在线| 91亚洲精华国产精华精华液| 日韩午夜激情视频| 国产尤物一区二区| 国产精品高潮久久久久无| 成人va在线观看| 亚洲欧美一区二区三区国产精品| 成人动漫av在线| 337p日本欧洲亚洲大胆精品| 捆绑紧缚一区二区三区视频| 欧美日韩一区二区欧美激情| 亚洲欧美另类久久久精品2019| 一区二区高清在线| 欧洲中文字幕精品| 国产剧情一区在线| 日韩情涩欧美日韩视频| 国产一区二区三区四区五区美女| 国产呦萝稀缺另类资源| 欧美色精品在线视频| 自拍偷拍亚洲激情| 欧美日韩激情一区二区三区| 久久综合色天天久久综合图片| 91女人视频在线观看| 久久婷婷色综合| 日韩国产欧美视频| 成人的网站免费观看| 久久99久久久久久久久久久| 日韩精品中午字幕| 色哟哟一区二区在线观看| 国产激情91久久精品导航| 欧美日韩精品一区二区天天拍小说| 337p日本欧洲亚洲大胆精品| 欧美日精品一区视频| 青椒成人免费视频| 精品国产乱子伦一区| 粉嫩av一区二区三区在线播放 | 欧美日韩一区二区欧美激情| 国产日本欧洲亚洲| 国产91清纯白嫩初高中在线观看| 欧美三级乱人伦电影| 色哟哟国产精品| 久久久91精品国产一区二区精品| 国产高清视频一区| 中文字幕在线一区| 精品制服美女丁香| 亚洲黄色尤物视频| 精品成人免费观看| 日韩一二三区不卡| 欧美怡红院视频| 日本不卡高清视频| 久久精品理论片| 蜜臀国产一区二区三区在线播放| 中文无字幕一区二区三区| 高清国产一区二区| 亚洲综合色婷婷| 另类小说欧美激情| 亚洲国产精品传媒在线观看| 国产视频在线观看一区二区三区 | 成人天堂资源www在线| 欧美日韩一区二区三区四区 | 色哟哟国产精品免费观看| 在线亚洲精品福利网址导航| 国产精品白丝jk白祙喷水网站| 亚洲国产成人91porn| 欧美成人性福生活免费看| 5月丁香婷婷综合| 国产一区二区三区在线观看免费| 麻豆91精品视频| 日韩精品色哟哟| 亚洲h在线观看| 国产精品亚洲а∨天堂免在线| 国产电影精品久久禁18| 男男gaygay亚洲| 国产成人免费视频精品含羞草妖精| 波多野结衣中文字幕一区| 一区二区久久久久| 亚洲人成伊人成综合网小说| 亚洲综合在线视频| 欧美日本国产视频| 91超碰这里只有精品国产| 视频一区二区三区在线| 中文字幕一区二区三区不卡在线| 中文字幕日韩av资源站| **性色生活片久久毛片| xnxx国产精品| 一区二区三区在线视频观看| 激情图区综合网| 久久精品国产久精国产爱| 9191久久久久久久久久久| 精品欧美乱码久久久久久 | 精品国产1区二区| 舔着乳尖日韩一区| 国产精品亚洲成人| 欧美激情资源网| 国产成人精品亚洲日本在线桃色| 欧美精品三级在线观看| 亚洲第一福利视频在线| 欧美性生活大片视频| 亚洲一区在线电影| 精品美女在线播放| 国产自产v一区二区三区c| 国产精品天天摸av网| 精品一区二区三区影院在线午夜| 99久久久久久| 一卡二卡三卡日韩欧美| 色婷婷综合五月| 亚洲韩国精品一区| 欧美撒尿777hd撒尿| 精品一区二区免费视频| 日韩一区二区高清| 亚洲午夜视频在线| 欧美精品一区二区三区很污很色的| 日本成人在线电影网| 欧美一级高清大全免费观看| 一区二区在线观看视频在线观看| 精品久久久久久久久久久院品网| 日本一区二区视频在线| 美腿丝袜亚洲三区| 亚洲免费成人av| 韩日av一区二区| 午夜久久久久久久久| 国产精品久久精品日日| 欧美精品在欧美一区二区少妇| 国产成人精品午夜视频免费|