利用Selenium模拟登录12306官网 2023/1/24可用

编程入门 行业动态 更新时间:2024-10-10 19:16:15

利用Selenium模拟登录12306<a href=https://www.elefans.com/category/jswz/34/1769462.html style=官网 2023/1/24可用"/>

利用Selenium模拟登录12306官网 2023/1/24可用

整个过程其实比较简单,结合注释进行理解。代码如下:

from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
from selenium.webdriver import ChromeOptions
from selenium.webdrivermon.by import Byoption = ChromeOptions()
option.add_experimental_option("excludeSwitches", ["enable-automation"])  # 反检测
option.add_experimental_option("detach", True)  # 代码结束后不自动关闭浏览器
# 实例化浏览器
driver = webdriver.Chrome(options=option)
# driver.maximize_window() # 为了美观可设置网页全屏,不全屏也没影响,可注释
# 对12306发起请求
driver.get((".html"))
# 解决webdriver被识别的问题
script = 'Object.defineProperty(navigator,"webdriver",{get:() => false,});'
driver.execute_script(script)
sleep(2)# 定位用户名框和密码框
userName_tag = driver.find_element(By.ID, 'J-userName')
password_tag = driver.find_element(By.ID, 'J-password')
# 输入你自己的账号和密码
userName_tag.send_keys('xxxxxxxxxx')  # 用户账号
password_tag.send_keys('xxxxxxxxxx')  # 用户密码
# 定位登录按钮并点击
driver.find_element(By.ID, 'J-login').click()
sleep(2)# 点击登录后会弹出一个滑块界面需要拖动验证。定位该滑块
span_tag = driver.find_element(By.ID, 'nc_1_n1z')
# 实例化动作链
action = ActionChains(driver)
# 点击且长按该滑块
action.click_and_hold(span_tag)
# 用一个for循环进行拖动
for i in range(5):action.move_by_offset(70, 0).perform()  # 向右拖动,一次拖动70个像素点sleep(0.3)
action.release()  # 释放动作链

仍有相关代码不理解的可以参考这位优秀博主的文章:

更多推荐

利用Selenium模拟登录12306官网 2023/1/24可用

本文发布于:2024-02-17 17:39:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1694870.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:官网   Selenium

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!