返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现滑块验证码详解
  • 639
分享到

Python实现滑块验证码详解

2024-04-02 19:04:59 639人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本节要讲解如下图所示的滑块验证码(更为复杂的滑动拼图验证码在下一篇介绍)。这种验证码机制比较简单:将滑块拖动到滑轨的最右端即可完成验证,如下图所示。如果未将滑块拖动到滑轨的最右端,则

本节要讲解如下图所示的滑块验证码(更为复杂的滑动拼图验证码在下一篇介绍)。这种验证码机制比较简单:将滑块拖动到滑轨的最右端即可完成验证,如下图所示。如果未将滑块拖动到滑轨的最右端,则无法通过验证,验证失败后滑块会回到起始位置。

其中的关键是需要用selenium库模拟鼠标拖动滑块滑动一定的距离。因为滑块的起始位置和滑轨的起始位置相同,所以滑块需要移动的距离等于滑轨的跨度减去滑块的宽度。下面就来利用开发工具查看滑轨和滑块的宽度。

在浏览器中打开本书配套代码文件中为滑块验证码搭建的本地网页文件“index.html”,打开开发者工具,然后用元素选择按钮选中整个滑轨,此时的界面如下图所示。可以看到其中显示了滑轨的尺寸和颜色等属性。要查看滑轨的尺寸,有两种方法:图中箭头所示。

滑块宽度的查看方法和滑轨相同,用元素选择工具选中滑块,可以看到滑块的宽度。由此可知需要模拟滑动的距离为260像素。

下图开始编写代码。首先用Selenium库打开网页,代码如下:

from selenium import WEBdriver
browser = webdriver.Chrome()
url = r'D:\works\python_crawl1\《python爬虫(进阶与进通)》代码汇总\2.验证码反爬\3.滑块验证码\index.html'
browser.get(url) #用模拟浏览器打开网页

然后用Selenium定位滑块,代码如下:

huakuai = browser.find_element_by_xpath('//*[@id="code-box"]/span')

定位到滑块后,就可以准备拖动滑块了。在拖动过程中要保持鼠标为按下状态,不能过早松开鼠标,所以不能使用click()函数。Selenium库提供了一个ActionChains模块,其中的click_and_hold()函数可以使鼠标保持按下状态,release()函数可以松开鼠标,move_by_offset()函数可以使鼠标移动。结合使用这些函数即可将滑块拖动一定距离,代码如下:

action = webdriver.ActionChains(browser) # 启动动作链
action.click_and_hold(huakuai).perfORM() #按住滑块
action.move_by_offset(260,0) #移动滑块,其中的260是之前计算出来的需要滑动的距离
action.release().perform() #释放滑块

完整代码如下,其中还用time库的sleep()函数在模拟滑动前等待两秒,以便观察滑动效果。

from selenium import webdriver
import time
# 1.访问网址
browser = webdriver.Chrome()
url = r'D:\works\Python_crawl1\《Python爬虫(进阶与进通)》代码汇总\2.验证码反爬\3.滑块验证码\index.html'
browser.get(url) #用模拟浏览器打开网页
# 2.定位滑块
huakuai = browser.find_element_by_xpath('//*[@id="code-box"]/span')
# 3.开始滑动
action = webdriver.ActionChains(browser) # 启动动作链
action.click_and_hold(huakuai).perform() #按住滑块
time.sleep(2)
action.move_by_offset(260,0) #移动滑块,其中的260是之前计算出来的需要滑动的距离
action.release().perform() #释放滑块

最终运行结果如下图所示,模拟滑块成功。

需要注意的是,现在有一些含有滑块验证码的网页会检测当前浏览器是否为Selenium库的webdriver模拟浏览器,如果是的话,便很难模拟滑动成功。这种反爬机制已经不是验证码反爬,而是webdriver反爬,处理起来比较困难。这里有一个讨巧的解决方法:如果登录阶段需要进行滑动验证(如淘宝的登录),那么可以在代码中用time.sleep()等待一段时间,在这段时间内用其他方式手动登录,如手动扫码登录,登录成功后再用Selenium库继续爬取。

到此这篇关于Python实现滑块验证码详解的文章就介绍到这了,更多相关Python滑块验证码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python实现滑块验证码详解

本文链接: https://lsjlt.com/news/117727.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python实现滑块验证码详解
    本节要讲解如下图所示的滑块验证码(更为复杂的滑动拼图验证码在下一篇介绍)。这种验证码机制比较简单:将滑块拖动到滑轨的最右端即可完成验证,如下图所示。如果未将滑块拖动到滑轨的最右端,则...
    99+
    2024-04-02
  • Python实现滑块拼图验证码详解
    目录初级版滑块拼图验证码补充知识点高级版滑动拼图验证码滑动拼图验证码可以算是滑块验证码的进阶版本,其验证机制相对复杂。本节将介绍两种滑动拼图验证码:初级版和高级版本。 初级版滑块拼...
    99+
    2024-04-02
  • python 密码验证(滑块验证)
    目录题目描述:解题思路/算法分析/问题及解决实验代码题目描述: (1)模拟登陆界面,判别用户名和密码,给出合适的提示,如果超过三次,锁定输入。用代替密码;或者最新输入显示,前面的变成...
    99+
    2024-04-02
  • SpringBoot实现滑块验证码验证登陆校验功能详解
    目录前言一、实现效果二、实现思路三、实现步骤1. 后端 java 代码1.1 新建一个拼图验证码类1.2 新建一个拼图验证码工具类1.3 新建一个 service 类1.4 新建一个...
    99+
    2024-04-02
  • JavaScript实现滑块验证码
    本文实例为大家分享了JavaScript实现滑块验证码的具体代码,供大家参考,具体内容如下 效果:鼠标在底部滑块上按下按住不松拖动可以移动滑块,上面大图里面带有小图背景的滑块也会跟随...
    99+
    2024-04-02
  • python实现腾讯滑块验证码识别
    腾讯滑块验证码识别,识别凹槽的x轴位置,mock滑块的加速度。该项目公开API,提供识别和加速度模拟部分,第二部分模拟滑动进行识别返回数据请求 项目地址:https://github.com/zhaojunlike/...
    99+
    2022-06-02
    python 验证码识别 python 滑块验证码识别 python 腾讯验证码
  • python滑块验证码如何破解
    很抱歉,我不能提供关于破解滑块验证码的信息。这是不道德且违法行为,违反了网站的服务条款和法律法规。我鼓励尊重和遵守所有的在线服务和法...
    99+
    2023-08-24
    python
  • Java实现滑块拼图验证码
    本文实例为大家分享了Java实现滑块拼图验证码的具体代码,供大家参考,具体内容如下 1、后端随机生成抠图和带有抠图阴影的背景图片,后台保存随机抠图位置坐标 2、前端实现滑动交互,将抠...
    99+
    2024-04-02
  • JS 简单实现滑块验证码
    目录开篇:一、实现效果styleScript二、总结与思考开篇: 拖动底部滑块,实现滑块验证码功能 一、实现效果 style *{ margin: 0; padd...
    99+
    2023-05-14
    JS 滑块验证码 JS 验证码
  • JS怎么实现滑块验证码
    本篇内容介绍了“JS怎么实现滑块验证码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!style*{   &nb...
    99+
    2023-07-05
  • OpenCV结合selenium实现滑块验证码
    本次案例使用OpenCV和selenium来解决一下滑块验证码 先说一下思路: 弹出滑块验证码后使用selenium元素截图将验证码整个背景图截取出来 将需要滑动...
    99+
    2024-04-02
  • Flutter实现滑动块验证码功能
    Flutter实现滑动块验证码功能,供大家参考,具体内容如下 本文实现的是一个用于登录时,向右滑动滑动块到最右边完成验证的一个功能。当滑动未到最右边时,滑动块回弹回左边起始位置。 ...
    99+
    2024-04-02
  • 怎么用JavaScript实现滑块验证码
    本篇内容主要讲解“怎么用JavaScript实现滑块验证码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JavaScript实现滑块验证码”吧!效果:鼠标在底部滑块上按下按住不松拖动可以移...
    99+
    2023-06-25
  • python如何实现腾讯滑块验证码识别
    小编给大家分享一下python如何实现腾讯滑块验证码识别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2...
    99+
    2023-06-14
  • js canvas实现滑块验证
    本文实例为大家分享了js canvas实现滑块验证的具体代码,供大家参考,具体内容如下 滑块验证 话不多说先上代码想用的小伙伴可以直接使用,想了解的我后面会说下我的思路 <...
    99+
    2024-04-02
  • 用selenium解决滑块验证码
    前言 因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇博客主要是用selenium解决滑块验证码的个别案列。 思路: 用selenium打开浏览器指定网站将残缺块图片和背...
    99+
    2023-09-04
    selenium chrome python
  • Python爬虫怎么破解滑块验证码
    这篇文章主要介绍“Python爬虫怎么破解滑块验证码”,在日常操作中,相信很多人在Python爬虫怎么破解滑块验证码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python爬虫怎么破解滑块验证码”的疑惑有所...
    99+
    2023-06-20
  • 用selenium解决滑块验证码的实现步骤
    目录前言实现步骤1. 用selenium打开浏览器浏览指定网站1.1 找到chromedriver.exe的路径1.2 代码2.将残缺块图片和背景图片下载到本地2.1 找到图片位置2...
    99+
    2023-02-14
    selenium 滑动验证码 selenium 滑块验证 滑块验证码自动识别
  • selenium+opencv实现滑块验证码的登陆
    目录环境selenium登录网站requests抓取验证码图片OpenCV识别缺口位置模拟拖动滑块脚本示例:很多网站登录登陆时都要用到滑块验证码,在某些场景例如使用爬虫爬取信息时常常...
    99+
    2023-05-15
    selenium opencv滑块验证码 opencv滑块验证码
  • JavaScript实现登录滑块验证
    本文实例为大家分享了JavaScript实现登录滑块验证的具体代码,供大家参考,具体内容如下 html代码 <div class="login-select"> ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作