让 Python 爬虫也能读得懂「滑动验证码」

本文介绍如何利用Python和Selenium处理滑动验证码。首先,通过OpenCV识别缺块位置,接着使用Selenium模拟滑动行为,实现爬虫读取和应对滑动验证码的能力。内容包括图片处理、边缘检测、轮廓查找以及模拟用户行为。

动态网页与静态网页最大的不同是资料是在什么时间点取得的,动态网页是在浏览器已经取得 HTML 后,才透过 JavaScript 在需要时动态地取得资料。因此,爬虫程式也必须要考虑动态取得资料这件事情,才有办法正确地找到想要的资料。 「滑动验证码(Slider Captcha)」是验证码机制当中常见的典型,也是防范爬虫程式中一种难缠的对手。这一篇文章将会利用 Python 、opencv 与 Selenium 三个工具,示范如何拆解和模拟滑动验证码。

jQueryScript.net

常见的网页验证码类型与原理

你在浏览网页的时候,有看过这些验证机制吗?网页验证码的专业术语称为「CAPTCHA 」(全名是Completely Automated Public Turing test to tell Computers and Humans Apart 自动判别电脑与人类的公开图灵测试),是目前在网页当中常见的一种验证机制,用来判断恶意的使用者干扰与攻击。目前常见的 CAPTCHA 方法有以下几种:

  • 信件验证码/简讯验证码
  • 图形验证码
  • 问题验证码
  • 行为验证码

reCAPTCHA 计画目前是由 Google 主要发展的验证机制,最早是由 CMU 发起的 。 reCAPTCHA 透过不同的情境让人类回答,并借此来帮助帮助文件数位化的进行。这个计画将纸本扫描后无法被辨识文字显示在问题中,让人类在回答问题也能加以利用。

利用 Python 处理「滑动程式码」的思路

而在「图形验证码」当中,有一种常见的变形称为「滑动验证码」。滑动验证码会动态的更新图片与缺块,并且要求使用者将缺块移动到图片中的特定位置才能通过判断,如图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0KyrXkiR-1622897197711)(https://imgur.com/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值