简介
对于大部分玩爬虫或者学习爬虫的人来说,验证码毫无疑问是最烦的,但也是相比较而言也是比较容易破解的,但也需要费点脑筋。接下来给大家分享一个滑块验证的解决办法,希望能给大家带来帮助!!
网站我也是找了好久才找到一个有滑块的验证网址。。不好找啊!!!
或不多少,直接开始。
2、下载selenium
首先使用selenium ,需要进行安装
pip install sekenium
3、下载驱动
只要想在驱动了,selenium才能调动浏览器
下载驱动就不多说了,可以看看这篇,里面有很详细的教程:
驱动下载教程
4、代码
# /7/15 22:16from selenium.webdriver import Chromefrom mon.action_chains import ActionChainsimport timeweb = Chrome()# 打开界面web.get('/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)# 获取滑块的按钮Xpathbtn = web.find_element_by_xpath('//*[@id="nc_1_n1z"]')# 操作滑块向右平移100,上下移动0ActionChains(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 mon.by import By2、换方法:web.find_element_by_xpath('//*[@id="J-login"]') ==》 web.find_element(By.XPATH,'//*[@id="J-login"]')
如果觉得《selenium 解决滑块验证的问题 自动化登录12306中国铁路网》对你有帮助,请点赞、收藏,并留下你的观点哦!