python+selenium行為鏈登錄12306(滑動(dòng)驗(yàn)證碼滑塊)
使用python網(wǎng)絡(luò)爬蟲(chóng)登錄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爬蟲(chóng)selenium驗(yàn)證之中文識(shí)別點(diǎn)選+圖片驗(yàn)證碼案例(最新推薦)
相關(guān)文章
python實(shí)現(xiàn)高斯判別分析算法的例子
今天小編就為大家分享一篇python實(shí)現(xiàn)高斯判別分析算法的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Pytorch?Mac?GPU?訓(xùn)練與測(cè)評(píng)實(shí)例
這篇文章主要為大家介紹了Pytorch?Mac?GPU?訓(xùn)練與測(cè)評(píng)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Python?OpenCV?Canny邊緣檢測(cè)算法的原理實(shí)現(xiàn)詳解
這篇文章主要介紹了Python?OpenCV?Canny邊緣檢測(cè)算法的原理實(shí)現(xiàn)詳解,由于邊緣檢測(cè)對(duì)噪聲敏感,因此對(duì)圖像應(yīng)用高斯平滑以幫助減少噪聲,具體詳情需要的小伙伴可以參考一下2022-07-07
Python實(shí)現(xiàn)功能完整的個(gè)人員管理程序
這篇文章主要介紹了Python實(shí)現(xiàn)功能完整的個(gè)人員管理程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12
python 匿名函數(shù)與三元運(yùn)算學(xué)習(xí)筆記
這篇文章主要介紹了python 匿名函數(shù)與三元運(yùn)算的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python 編程,感興趣的朋友可以了解下2020-10-10
循環(huán)神經(jīng)網(wǎng)絡(luò)TextRNN實(shí)現(xiàn)情感短文本分類(lèi)任務(wù)
這篇文章主要為大家介紹了循環(huán)神經(jīng)網(wǎng)絡(luò)TextRNN實(shí)現(xiàn)情感短文本分類(lèi)任務(wù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
使用XML庫(kù)的方式,實(shí)現(xiàn)RPC通信的方法(推薦)
下面小編就為大家?guī)?lái)一篇使用XML庫(kù)的方式,實(shí)現(xiàn)RPC通信的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
關(guān)于networkx返回圖的鄰接矩陣問(wèn)題
這篇文章主要介紹了關(guān)于networkx返回圖的鄰接矩陣問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12

