Today is the study of the slider verification code.
url:https://kyfw.12306.cn/otn/resources/login.html
The next thing we want to do is this slider authenticated login:
1. Get the label:
To get the value, just right-click to copy, and directly select what you want (there are selector, xpath, etc., you can choose the one you are proficient in)
2. Anti-blocking (this website is blocked, so we have to write an anti-blocking, otherwise the slide will not pass, as shown below)
# 反屏蔽
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})
3. There is nothing to write. This is very simple, so I will directly write the code.
from selenium.webdriver.common.by import By
from selenium import webdriver
import time
from selenium.webdriver import ActionChains
from PW.mm import USER, WORD #自己的账号密码包
url = 'https://kyfw.12306.cn/otn/resources/login.html'
driver = webdriver.Chrome()
# 反屏蔽
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})
driver.implicitly_wait(10)
driver.get(url)
driver.maximize_window()
time.sleep(2)
# 输入账号
driver.find_element(By.ID, 'J-userName').send_keys(USER)
# 输入密码
driver.find_element(By.ID, 'J-password').send_keys(WORD)
# 点击
driver.find_element(By.CSS_SELECTOR, '#J-login').click()
driver.find_element(By.CSS_SELECTOR, "#nc_1_n1z").click()
def slidermove():
# 获取滑块位置
slider = driver.find_element_by_css_selector('#nc_1_n1z')
# 获取滑条
Slidebar = driver.find_element_by_css_selector("#nc_1__scale_text > span")
# 拖动滑块滑条末尾
ActionChains(driver).drag_and_drop_by_offset(slider, Slidebar.size['width'], -slider.size['height']).perform()
slidermove()
For the account password package, just register an account and create a .py file.
#12306平台的登录
USER='xxxx'
WORD='xxxxx'
OK, that's it, super simple.