亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

python+selenium-12306實(shí)戰(zhàn)解決登錄滑塊問(wèn)題

dongxiawu / 3040人閱讀

摘要:實(shí)戰(zhàn)解決登錄滑塊問(wèn)題寫在前面遇到的問(wèn)題解決辦法登錄過(guò)程如何使用開(kāi)發(fā)者模式參考寫在前面嘗試自動(dòng)化測(cè)試或初級(jí)爬蟲(chóng)登錄模塊以及滑塊驗(yàn)證可參考本篇文章。

寫在前面

嘗試自動(dòng)化測(cè)試或初級(jí)爬蟲(chóng)(登錄模塊)以及滑塊驗(yàn)證可參考本篇文章。
使用網(wǎng)站:chrome(39版)

遇到的問(wèn)題

滑塊驗(yàn)證:賬號(hào)密碼輸入后會(huì)讓進(jìn)行滑塊驗(yàn)證,即使拖動(dòng)成功也會(huì)讓刷新再試一次,即使再拖動(dòng)仍舊如此,問(wèn)題其實(shí)出在chromedriver,網(wǎng)站會(huì)檢測(cè)到是自動(dòng)測(cè)試工具從而阻止你的登錄。

解決辦法

使用低版本的chrome以及對(duì)應(yīng)的chromedriver,具體版本對(duì)應(yīng)csdn上有可以搜到(文末也有注釋以及chromedriver各版本下載地址),至此可解決12306的滑塊問(wèn)題,但有一個(gè)問(wèn)題該版本不支持購(gòu)買服務(wù),只能作為練習(xí)了。
對(duì)于其他網(wǎng)站,如:某淘,本人在去年想攻克未遂,今年又遇到相同的問(wèn)題找到一篇解決方法,適用性很高,大家可以嘗試下,注意使用低版本的chrome以及chromedriver(39可以),才能find 到$cdc_lasutopfhvcZLmcfl,文章鏈接。

我使用的chrome是39版本,下載地址:http://www.121down.com/soft/softview-103980.html#downaddress
① 記得設(shè)置禁止自動(dòng)更新:https://blog.csdn.net/weixin_41990913/article/details/90912790
②還有環(huán)境變量配置,由于老版本chrome不一定裝在C盤,要根據(jù)具體位置加到用戶變量PATH中,chromedriver.exe跟chrome.exe放在同一個(gè)文件夾中。

12306登錄過(guò)程

注釋比較詳細(xì),不再做過(guò)多說(shuō)明

from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom time import sleep#-------------------------------------初始化--------------------------------------------#僅用chrome39版本可躲過(guò)selenium檢測(cè)option = webdriver.ChromeOptions()#開(kāi)發(fā)者模式的開(kāi)關(guān),設(shè)置一下,打開(kāi)瀏覽器就不會(huì)識(shí)別為自動(dòng)化測(cè)試工具option.add_experimental_option("excludeSwitches", ["enable-automation"])option.binary_location = "D://Google Chrome 32位 v39.0.2171.99//App//Google Chrome//chrome.exe" #自己目錄chrome位置driver = webdriver.Chrome(chrome_options=option, executable_path="D://Google Chrome 32位 v39.0.2171.99//App//Google Chrome//chromedriver")#自己目錄chromedriver位置#------------------------------------打開(kāi)12306網(wǎng)頁(yè)-------------------------------------------driver.maximize_window()driver.implicitly_wait(10)url = "https://kyfw.12306.cn/otn/leftTicket/init"driver.get(url)#-------------------------------------登錄---------------------------------------------ActionChains(driver).move_by_offset(1000, 560).click().perform() # 點(diǎn)掉提示,鼠標(biāo)左鍵點(diǎn)擊, 1000為x坐標(biāo), 500為y坐標(biāo),可用微信截圖工具得出坐標(biāo)driver.find_element_by_id("login_user").click()driver.find_element_by_xpath("http://ul[@class="login-hd"]/li[2]/a").click() #注意相對(duì)路徑也要每層都寫,層層遞進(jìn)driver.find_element_by_id("J-userName").send_keys("")driver.find_element_by_id("J-password").send_keys("")#補(bǔ)充自己的賬號(hào)密碼driver.find_element_by_xpath("http://div[@class="login-btn"]/a").click()#登錄sleep(2)#-----------------------------------滑塊驗(yàn)證--------------------------------------------#拖動(dòng)滑塊dragger = driver.find_element_by_id("nc_1_n1z")action = ActionChains(driver)action.click_and_hold(dragger).perform()# 點(diǎn)擊并拖住滑塊action.drag_and_drop_by_offset(dragger,300,0).perform() #拖動(dòng)等長(zhǎng)距離滑塊,開(kāi)發(fā)者模式可看到 sleep(2)driver.find_element_by_xpath("http://div[@class="modal-ft"]/a").click()# 點(diǎn)掉提示

如何使用開(kāi)發(fā)者模式

  • 首先按F12
  • 如何快速找到按鈕對(duì)應(yīng)的html代碼位置:點(diǎn)擊開(kāi)發(fā)工具左上角,如圖所示
  • 再點(diǎn)擊你想要找的按鈕,比如登錄,右側(cè)開(kāi)發(fā)工具會(huì)自動(dòng)顯示對(duì)應(yīng)的html代碼

參考

某寶: https://blog.csdn.net/taojian_/article/details/97758632?spm=1001.2014.3001.5501
版本對(duì)應(yīng): https://blog.csdn.net/Yunwubanjian/article/details/86539432
chromedriver: http://chromedriver.storage.googleapis.com/index.html
12306實(shí)戰(zhàn): http://www.uml.org.cn/Test/201808024.asp

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/122488.html

相關(guān)文章

  • python自動(dòng)化測(cè)試之破解滑動(dòng)驗(yàn)證碼

      python作為一門比較常見(jiàn)的編程語(yǔ)言,在工作當(dāng)中的應(yīng)用還是比較的廣泛的,比如可以對(duì)此進(jìn)行相關(guān)的自動(dòng)化測(cè)試,比如自動(dòng)化測(cè)試相關(guān)的代碼,另外還有破解滑動(dòng)驗(yàn)證碼。那么,具體的操作手法是怎樣的呢?下面就給大家詳細(xì)解答下。  在Web自動(dòng)化測(cè)試的過(guò)程中,經(jīng)常會(huì)被登錄的驗(yàn)證碼給卡住,不知道如何去通過(guò)驗(yàn)證碼的驗(yàn)證?! ∫话愕那闆r下遇到驗(yàn)證碼我們可以都可以找開(kāi)發(fā)去幫忙解決,關(guān)閉驗(yàn)證碼,或者給一個(gè)萬(wàn)能的驗(yàn)證碼...

    89542767 評(píng)論0 收藏0
  • OpenCV搞定騰訊滑塊驗(yàn)證碼

    摘要:前言廢話滑塊驗(yàn)證碼破解是一直都想搞的項(xiàng)目,畢竟多數(shù)網(wǎng)站都會(huì)采用滑塊驗(yàn)證碼,于是最近在修改論文的閑暇之余把這事兒給解決了。 前言 廢話滑塊驗(yàn)證碼破解是一直都想搞的項(xiàng)目,畢竟多數(shù)網(wǎng)站都會(huì)采用滑塊驗(yàn)證碼,于是最近在修改論文的閑暇之余把這事兒給解決了。要搞現(xiàn)在的滑塊驗(yàn)證碼繞不開(kāi)圖像處理,圖像處理當(dāng)然是首推OpenCV-Python啦!當(dāng)然我的OpenCV非常菜(P.S.兩天速成不敢保證代碼質(zhì)量...

    loostudy 評(píng)論0 收藏0
  • Python--Redis實(shí)戰(zhàn):第二章:使用Redis構(gòu)建Web應(yīng)用:第一節(jié):登錄和cookie緩存

    摘要:需要在服務(wù)中存儲(chǔ)更多信息,如果使用的是關(guān)系數(shù)據(jù)庫(kù),那么載入和存儲(chǔ)的的代價(jià)可能會(huì)很高。這次我們使用令牌來(lái)引用關(guān)系數(shù)據(jù)庫(kù)表中負(fù)責(zé)存儲(chǔ)用戶登錄信息的條目。而我們要做的就是適用重新實(shí)現(xiàn)登錄功能,取代由關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)的登錄功能。 上一篇文章:Python--Redis實(shí)戰(zhàn):第一章:初識(shí)Redis:第三節(jié):你好Redis-文章投票試煉下一篇文章:Python--Redis實(shí)戰(zhàn):第二章:使用Redi...

    makeFoxPlay 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<