在使用python爬虫程序从网站上面抓取数据返回的时候,经常会遇到一些网站是要验证登录才可以访问或者是浏览的 。而除了传统的字符验证码之外,更多的是滑块或者拼图验证 。而本篇文章小编会来给大家介绍一下很简单的方法来处理滑块验证码,一起往下看看吧 。
文章插图
1.python爬虫在访问网站抓取数据的时候,并不会在电脑上打开浏览器并且进入网页,它只是模拟了浏览器进入网页的操作而已 。所以能够发送请求抓取数据返回,但是却没办法操作网页元素 。那么可以导入selenium库来同时打开浏览器并操作网页,代码如下所示:
from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver import ChromeOptions2.在使用这个库来完成网站滑块验证之前,还需要去除掉浏览器的识别验证 。否则该网站的反爬措施可能就是会将其当做是爬虫或者恶意访问请求来禁止访问该网站,代码如下所示:
option = ChromeOptions()option.add_experimental_option('excludeSwitches', ['enable-automation'])option.add_experimental_option("detach", True)3.之后就是要通过Chrome()方法实例化一个浏览器对象,这个对象的作用就是打开电脑上的Chrome浏览器 。再去使用get()方法就可以在启动浏览器之后进入网站,示例如下:
driver = webdriver.Chrome(options=option)driver.get('https://kyfw.12306.cn/otn/resources/login.html')4.那么最后的操作就比较简单了,先通过F12进入开发者模式来看一下这个滑块验证码的标签是什么 。然后使用find方法获取到这个标签的dom元素对象,再调用move方法就能够控制这个滑块验证码标签向右去平移一定的距离完成滑块验证,代码示例如下:
【Python怎么完成滑块验证?Python如何处理滑块验证码】span = driver.find_element_by_id('nc_1_n1z')actions = ActionChains(driver) time.sleep(2) actions.click_and_hold(span).move_by_offset(300, 0).perform()以上就是关于“Python怎么完成滑块验证?Python如何处理滑块验证码”的全部内容了,希望对你有所帮助 。
推荐阅读
- Python如何控制网页窗口滚动?Python滑动窗口怎么实现
- Python如何生成10个随机数?Python输出10个随机数的方法
- Python中如何创建一个空字典?Python创建空字典的方法
- 如何对Python字符串进行合并?Python合并字符串方法有哪些?
- Python标准库中的logging如何使用? Python的logging模块基本用法
- 如何用Numpy读取和保存点云数据?Python如何用Numpy读取和保存点云数据?
- 如何使用Python中range方法?Python中range()函数的用法是什么?
- 好用的Python集成开发工具有哪些?Python主流的IDE工具
- Python如何定义动态函数?Python动态定义函数的方法
- Python怎么使用selenium库打开多个窗口?Selenium库如何切换页面