selenium 解决滑块验证的问题,自动化登录12306中国铁路网

简介

对于大部分玩爬虫或者学习爬虫的人来说,验证码毫无疑问是最烦的,但也是相比较而言也是比较容易破解的,但也需要费点脑筋。接下来给大家分享一个滑块验证的解决办法,希望能给大家带来帮助!!

网站我也是找了好久才找到一个有滑块的验证网址。。不好找啊!!!

或不多少,直接开始。

2、下载selenium

        首先使用selenium ,需要进行安装

        pip install sekenium

3、下载驱动

只要想在驱动了,selenium才能调动浏览器

下载驱动就不多说了,可以看看这篇,里面有很详细的教程:

驱动下载教程

4、代码

# 2022/7/15 22:16
from selenium.webdriver import Chrome

from selenium.webdriver.common.action_chains import ActionChains
import time



web = Chrome()
# 打开界面
web.get('https://kyfw.12306.cn/otn/resources/login.html')

web.find_element_by_xpath('//*[@id="J-userName"]').send_keys('132')
web.find_element_by_xpath('//*[@id="J-password"]').send_keys('Liujiaqing2858')
time.sleep(2)
# 点击登录按钮
web.find_element_by_xpath('//*[@id="J-login"]').click()


time.sleep(2)

# 获取滑块的按钮Xpath
btn = web.find_element_by_xpath('//*[@id="nc_1_n1z"]')
# 操作滑块向右平移100,上下移动0
ActionChains(web).drag_and_drop_by_offset(btn,100,0).perform()

5、结果

滑块拖动太快了,没要截到,不过效果还是出来了

能看到移动了100个像素的位置.

这句代码把100改成300就能滑过去了

ActionChains(web).drag_and_drop_by_offset(btn,100,0).perform()

最后还有一个小问题

出现这个问题其实是 :

这个方法  find_element_by_xpath  快要被删除了,但是现在还是能使用,就会发出这样的警告

解决办法:

1、导入包:

from selenium.webdriver.common.by import By
2、换方法:

web.find_element_by_xpath('//*[@id="J-login"]')  
==》 
web.find_element(By.XPATH,'//*[@id="J-login"]')

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源源佩奇

一起进步,提高自己。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值