python爬虫之12306模拟登陆

python爬虫之12306模拟登陆

登录流程:

1、登录界面输入账号密码,点击立即登录

2、弹出手机验证界面,输入身份证后4位,点击获取验证码等待验证码后手动输入,点击确定登录

实现代码如下:

#需求:登陆12306,输入短信验证码后登陆
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
#导入动作链对应的类
from selenium.webdriver import ActionChains
from selenium.webdriver.edge.options import Options
edge_options = Options()
edge_options.add_experimental_option("detach", True)
edge_options.add_argument("--guest") # 启用guest模式。
# edge_options.add_experimental_option("detach",True)
# 创建一个Edge WebDriver实例
bro = webdriver.Edge(options=edge_options)

bro.get('https://kyfw.12306.cn/otn/resources/login.html')
handle = bro.current_window_handle  # 获取当前窗口句柄

username = bro.find_element(By.ID,'J-userName')
password = bro.find_element(By.ID,'J-password')

username.send_keys('账号')
password.send_keys('密码')

btn = bro.find_element(By.ID,'J-login')
btn.click()

# card = bro.find_element(By.ID,'id_card')
# card.send_keys('6220')

handles = bro.window_handles  # 获取所有窗口句柄
for window_handle in handles:  # 循环比较句柄
    if window_handle != handle:  # 如果窗口句柄与当前窗口句柄不一致,则切换到该窗口
        bro.switch_to.window(window_handle)
sleep(3)
card = bro.find_element(By.ID,'id_card')
card.send_keys('XXXX')

btn_vertify = bro.find_element(By.ID,'verification_code')
btn_vertify.click()

# code = bro.find_element(By.ID,'code')
sleep(60)
# yanzhengma = input()
# sleep()
# code.send_keys('035145')

btn_primary = bro.find_element(By.ID,'sureClick')
btn.click()

sleep(3)
bro.quit()
相关推荐
天下·第二7 分钟前
使用【docker】简单部署打包构建好的镜像并运行python项目
python·docker·eureka
Geeker557 分钟前
如何从iPhone恢复错误删除的照片
android·数据库·macos·ios·pdf·手机·iphone
念晚91717 分钟前
Linux各种命令——tac命令,more 命令, less命令,head命令,tail命令,file 命令, stat 命令
linux·运维·服务器·前端·网络·数据库·less
夏木夕19 分钟前
SQL面试题练习 —— 共同使用ip用户检测问题
数据库·sql
左手の明天22 分钟前
【Python网络爬虫案例】python爬虫之模拟登录
开发语言·爬虫·python·模拟登录
浅尝辄止;43 分钟前
已成功与服务器建立连接,但是在登录过程中发生错误。(provider: SSL提供程序,error:0-证书链是由不受信任的颁发机构颁发的。)
数据库
CHNMSCS1 小时前
Django项目 - 合并PDF文件
python·django·pdf
Mac分享吧1 小时前
PyCharm2024 for mac Python编辑开发
python·macos·pycharm·编辑器·mac·软件需求
布丁椰奶冻1 小时前
【分布式计算框架 MapReduce】高级编程—多任务数据分析
大数据·数据库·mapreduce
Itmastergo1 小时前
零基础小白学习 Python,应该如何配置 Python 开发环境?(包含Windows、MacOS、Linux)
开发语言·python·学习