解决滑块验证登录问题和网站禁止selenium操作无法通过验证问题,问题过程如下,亲测有效:

当输入账号密码,点击登录后出现如下滑动解锁框:

此时,完成滑块自动滑动至右边解锁,写个拖动滑块的函数 move_by_offset(),偏移量的确定方法,浏览器开发者模式(F12),找到滑块的元素ID,拖动至最右边,即可看到合适的偏移量,如下图:

确定偏移量,直接上代码

运行后出现如下现象,滑动解锁出错:

解决上面问题,只需执行一句JS代码:

 至此,可实现12306火车票网站,滑块自动登录。

废话不多说,直接上完整代码,如下:

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChainsclass trainTicketLogin(object):def __init__(self):self.username = 'XXXXXXXX'self.passwd = 'XXXXXXXX'self.url = 'https://kyfw.12306.cn/otn/resources/login.html'self.browser = webdriver.Firefox()def login(self,url):self.browser.get(self.url)# 选择1.账号密码登录login_method = self.browser.find_element(By.XPATH,'//div[@class="login-box"]/ul/li[1]/a').click()user = self.browser.find_element(By.ID,'J-userName').send_keys(self.username)passwd = self.browser.find_element(By.ID,'J-password').send_keys(self.passwd)# 登录submit = self.browser.find_element(By.CLASS_NAME,'login-btn').click()# print(browser.get_cookies())time.sleep(3)button = self.browser.find_element(By.XPATH,'//*[@id="nc_1_n1z"]')self.Verification(button)def Verification(self,button):action = ActionChains(self.browser)# 防止网站禁止seleniumscript = 'Object.defineProperty(navigator,"webdriver",{get:()=>undefined,});'self.browser.execute_script(script)#鼠标左键按下不放action.click_and_hold(button).perform()#需要滑动的偏移量action.move_by_offset(300,0)#释放鼠标action.release().perform() time.sleep(0.1)def run(self):self.login(self.url)
if __name__ == '__main__':Spider = trainTicketLogin()Spider.run()

selenium实现12306火车购票网站滑块自动验证登录相关推荐

  1. 从12306火车购票网站谈海量事务高速处理系统

    12306架构性能高并发  转自:http://huiqinbo.iteye.com/blog/1407784 JE上好多讨论这个主题的帖子,但是水(v)的人远远多于技术讨论的.最近一直在跟同事和网友 ...

  2. 火车订票管理系统/火车购票网站系统/火车订票网站/火车票售卖系统

    摘要:随着科技的飞速发展,计算机已经广泛的应用于各行各业当中,而且日趋普及.在各个领域内,计算机的应用已经十分广泛,各种智能设备都与计算机紧密结合在一起,主要应用于两个方面:一是以设备为主.另一种是软 ...

  3. 铁道部12306火车票购票网站浅析

    作为铁道部12306网站购买火车票的老用户,经历了今年春运.平日.以及现在的国庆假期购票,也看到很多人的建议.意见.疑问.谩骂,我试着站在电子商务从业者的角度来简单回答几个常见问题,并提出一些建议.如 ...

  4. 对铁道部12306火车票购票网站的浅析

    Address:http://smb.zol.com.cn/322/3224648.html 作为铁道部12306网站购买火车票的老用户,经历了今年春运.平日.以及现在的国庆假期购票,也看到很多人的建 ...

  5. vue3 滑块拼图验证登录(vue3-puzzle-vcode)

    这里写自定义目录标题 首先,我们项目中很多情况下会用到滑动图片验证登录 vue有一个插件可以满足我们的需求 第一步先安装 npm install vue3-puzzle-vcode --save 第二 ...

  6. 12306火车购票 助手.js

    // ==UserScript== // @name             12306.CN 订票助手 For Firefox&Chrome // @namespace        htt ...

  7. 运用C#在采集时进行自动验证登录[转]

    首先打开网站,查看源文件,找到他的登录表单部分. 比如: <form name="login" action="loginMain.jsp" method ...

  8. 28. 实战:基于selenium实现12306自动购票

    目录 前言 目的 思路 代码实现 1. 进入登录界面,输入账号密码 2. 点击登录按钮,完成滑块验证 3. 在个人中心点击购票,跳转 4. 输入出发地.目的地,从控制台输入得到 5. 文本框输入出发日 ...

  9. python实现网站的自动登录(selenium实现,带验证码识别)

    python实现网站自动登录(selenium实现,带验证码识别) 一.前言 这是鄙人写的第一篇博客,旨在总结一下近期所学,本文通过selenium工具实现工作所用网站的自动登录,下图为网站登录界面. ...

最新文章

  1. 2017-11-3—grow up
  2. 【Android 启动过程】Activity 启动源码分析 ( ActivityThread -> Activity、主线程阶段 一 )
  3. 10个调试Java的技巧
  4. 每个人都知道MVC…
  5. 《火球——UML大战需求分析》(第1章 大话UML)——1.5 小结和练习
  6. iOS开发中@property的属性weak nonatomic strong readonly等介绍
  7. JDK8后的日期时间API
  8. 论文浅尝 - SWJ | 基于知识图谱和注意力图卷积神经网络的可解释零样本学习
  9. php中左右去电空格,PHP中ltrim与rtrim去除左右空格及特殊字符实例
  10. 安卓模拟器调试GPS
  11. html中改变一张图片的颜色,css怎么改变图片颜色
  12. 亚马逊要验证收款查关联?
  13. Windows10清理C盘的恶意软件
  14. 2k2实用球员_盘点推荐萌新NBA2KOL2里性价比极高又好用的球员中锋篇
  15. 解决Git push提交时Permission denied(publickey).Could not read from remote...的问题
  16. JAVA简单计算器(简单实现两数加减乘除)
  17. org.apache.commons.codec.binary.Base64包需要下载的jar包依赖
  18. Sigmoid 与 Softmax 的区别
  19. 程序员在工作中这样做,会省去一大堆烦恼
  20. Linux安装与常见基本操作命令

热门文章

  1. consul作为配置中心
  2. 需求案例:求共同好友
  3. Android Messenger初探
  4. Google 开源项目风格指南
  5. 长安车机的安装拦截分析(安装应用部分)
  6. Unity3d Linux 下面画面撕裂问题
  7. 根据显卡型号选择CUDA和cuDNN进行TensorFlow GPU版本安装
  8. jqgrid本地加载分页_jqGrid 分页
  9. win10兼容性,详细教您Win10兼容性怎么设置
  10. Photoshop中实现沿正圆路径…