python+selenium行為鏈登錄12306(滑動(dòng)驗(yàn)證碼滑塊)
使用python網(wǎng)絡(luò)爬蟲登錄12306,網(wǎng)站界面如下。因?yàn)榫W(wǎng)站的反爬是不斷升級(jí)的,以下代碼雖然當(dāng)前可用,但早晚必將會(huì)不再能滿足登錄需求。但是知識(shí)的價(jià)值,是不容置疑的。
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time from selenium.webdriver import ChromeOptions # 去除瀏覽器識(shí)別 option = ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation']) option.add_experimental_option("detach", True) driver = webdriver.Chrome(options=option) driver.get('https://kyfw.12306.cn/otn/resources/login.html') # 解決特征識(shí)別 script = 'Object.defineProperty(navigator, "webdriver", {get: () => false,});' driver.execute_script(script) # 輸入賬號(hào) driver.find_element_by_id('J-userName').send_keys('123@163.com') # 輸入密碼 driver.find_element_by_id('J-password').send_keys('xxxxxxx') # 點(diǎn)擊登陸 driver.find_element_by_id('J-login').click() # 等待2秒鐘,不要點(diǎn)的太快,以免被識(shí)別或者以免網(wǎng)頁(yè)加載跟不上。 time.sleep(2) # 滑動(dòng) # 定位 滑塊標(biāo)簽 span = driver.find_element_by_id('nc_1_n1z') actions = ActionChains(driver) # 行為鏈實(shí)例化 time.sleep(2) # 等待2秒鐘 # 經(jīng)截圖測(cè)量,滑塊需要滑過(guò)的距離為300像素 actions.click_and_hold(span).move_by_offset(300, 0).perform() # 滑動(dòng)
解決瀏覽器識(shí)別:
其中的以下這幾行代碼,可用去除瀏覽器對(duì)selenium
的識(shí)別,如圖可以使瀏覽器頁(yè)面不再顯示圖中“Chrome
正受到自動(dòng)測(cè)試軟件的控制”字樣。
from selenium.webdriver import ChromeOptions option = ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation']) option.add_experimental_option("detach", True) driver = webdriver.Chrome(options=option)
解決特征識(shí)別的代碼:
script = 'Object.defineProperty(navigator, "webdriver", {get: () => false,});' driver.execute_script(script)
如果不采取去除特征識(shí)別,即以下兩行代碼。則頁(yè)面的滑塊驗(yàn)證碼在滑動(dòng)后,會(huì)顯示如下圖的出錯(cuò),從而阻止登錄進(jìn)行。因?yàn)榉?wù)器識(shí)別到的selenium
的特征。使用該兩行代碼更改了特征,即可以順利通過(guò)識(shí)別。
到此這篇關(guān)于python+selenium行為鏈登錄12306(滑動(dòng)驗(yàn)證碼滑塊)的文章就介紹到這了,更多相關(guān)python+selenium行為鏈登錄12306內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用 Python 和 Selenium 解決 Cloudflare 驗(yàn)證碼的問(wèn)題
- Python Selenium破解滑塊驗(yàn)證碼最新版(GEETEST95%以上通過(guò)率)
- Python +Selenium解決圖片驗(yàn)證碼登錄或注冊(cè)問(wèn)題(推薦)
- Selenium+Python 自動(dòng)化操控登錄界面實(shí)例(有簡(jiǎn)單驗(yàn)證碼圖片校驗(yàn))
- selenium+python實(shí)現(xiàn)1688網(wǎng)站驗(yàn)證碼圖片的截取功能
- Python使用selenium實(shí)現(xiàn)網(wǎng)頁(yè)用戶名 密碼 驗(yàn)證碼自動(dòng)登錄功能
- Python Selenium Cookie 繞過(guò)驗(yàn)證碼實(shí)現(xiàn)登錄示例代碼
- python+selenium識(shí)別驗(yàn)證碼并登錄的示例代碼
- Python爬蟲selenium驗(yàn)證之中文識(shí)別點(diǎn)選+圖片驗(yàn)證碼案例(最新推薦)
相關(guān)文章
python矩陣轉(zhuǎn)換為一維數(shù)組的實(shí)例
今天小編就為大家分享一篇python矩陣轉(zhuǎn)換為一維數(shù)組的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python?pandas數(shù)據(jù)合并merge函數(shù)用法詳解
這篇文章主要給大家介紹了關(guān)于Python?pandas數(shù)據(jù)合并merge函數(shù)用法的相關(guān)資料,數(shù)據(jù)分析中經(jīng)常會(huì)遇到數(shù)據(jù)合并的基本問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07python使用Plotly創(chuàng)建交互式數(shù)據(jù)可視化的操作步驟
Python 的 Plotly 庫(kù)是創(chuàng)建這種交互式可視化的強(qiáng)大工具,它提供了豐富的圖表類型和易于使用的接口,本文將探討如何使用 Plotly 創(chuàng)建交互式數(shù)據(jù)可視化,包括代碼實(shí)例和深入的解釋,需要的朋友可以參考下2024-08-08使用 Python 創(chuàng)建一個(gè)基于規(guī)則的聊天機(jī)器人
這篇文章主要介紹了使用 Python 創(chuàng)建一個(gè)基于規(guī)則的聊天機(jī)器人,使用 Python 創(chuàng)建一個(gè)簡(jiǎn)單的基于規(guī)則的聊天機(jī)器人 聊天機(jī)器人本身是一種機(jī)器或軟件,它通過(guò)文本或句子模仿人類交互。 簡(jiǎn)而言之,可以使用類似于與人類對(duì)話的軟件進(jìn)行聊天。2021-10-10在Python的Django框架的視圖中使用Session的方法
這篇文章主要介紹了在Python的Django框架的視圖中使用Session的方法,包括相關(guān)的設(shè)置測(cè)試Cookies的方法,需要的朋友可以參考下2015-07-07Python實(shí)現(xiàn)的手機(jī)號(hào)歸屬地相關(guān)信息查詢功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的手機(jī)號(hào)歸屬地相關(guān)信息查詢功能,涉及Python文件讀取及基于第三方接口調(diào)用查詢信息的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06詳解pandas如何去掉、過(guò)濾數(shù)據(jù)集中的某些值或者某些行?
這篇文章主要介紹了pandas如何去掉、過(guò)濾數(shù)據(jù)集中的某些值或者某些行?,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05