Python爬虫突破验证码技巧 - 2Captcha
在互联网世界中,验证码作为一种防止机器人访问的工具,是爬虫最常遇到的阻碍。验证码的类型众多,从简单的数字、字母验证码,到复杂的图像识别验证码,再到更为高级的交互式验证码,每一种都有其独特的识别方法和应对策略。在这篇文章中,我们将一一介绍各种验证码的工作原理和使用2Captcha进行破解的策略。
验证码简介

验证码(CAPTCHA),全称为"Completely Automated Public Turing test to tell Computers and Humans Apart",是一种区分用户是计算机还是人的公共全自动程序。最初,验证码主要是一些混杂字母和数字的图片,但随着技术的发展,出现了更多种类的验证码,例如reCAPTCHA、GeeTest拼图验证码、hCaptcha、KeyCaptcha等。
1. Normal CAPTCHA
Normal CAPTCHA是一种常见的验证码类型,它包含字母和数字的图片进行扭曲和变形。
2. 清晰文字问题的验证码
清晰文字问题的验证码主要是对问题的理解和答案的回答,比如“What is the capital of China?”,回答应该是“Beijing”。
3. 旋转物体的验证码
这种验证码要求用户旋转一个3D物体到正确的方向。
4. reCAPTCHA V2
reCAPTCHA V2是Google开发的验证码系统,要求用户选择一组与给定主题相关的图像。
5. GeeTest拼图验证码
GeeTest验证码是一种常见的滑动拼图验证码,用户需要将一个不完整的图像拼凑完整
6. hCaptcha
hCaptcha是一种验证人类的验证码,要求用户选择与给定主题相关的答案。
7. KeyCaptcha
KeyCaptcha是一种交互式验证码,需要用户进行一些操作,比如拖动一个物体到指定位置。
8. Capy拼图验证码
Capy是另一种拼图验证码,它将一个图像切分成多个小块,需要用户通过拖动小块拼凑成完整的图像。
9. Grid法验证码
Grid法验证码是一种基于网格的图像识别验证码,要求用户识别网格中的特定对象或图案。
10. Canvas验证码
Canvas验证码是一种在HTML5 canvas元素中绘制的验证码,它可以是文本,也可以是图像。
11. ClickCaptcha
ClickCaptcha会返回验证码图片的点坐标,用户需要根据这些坐标点击正确的位置。
2Captcha 自动验证码识别介绍
https://2captcha.com/zh/

2Captcha是一个自动验证码识别服务商,支持上述所有的验证码类型,识别效果目前最好。 (https://2captcha.com/zh/)

2Captcha服务介绍:

2Captcha支持的所有验证码类型
| 验证码类型 | 每 1000 人的费率 | 描述 |
|---|---|---|
| Normal Captcha, Text Captcha | 0.5−1 | 费率是灵活的,取决于服务的当前负载。 您可以在帐户设置中查看当前速率和限制最大速率。 |
| reCAPTCHA V2 | $2.99 | 该费率适用于通过令牌解决的 Google 的 reCAPTCHA V2。 |
| reCAPTCHA V3 | 1.45,2.99 | score <= 0.3, score > 0.3 |
| reCAPTCHA Enterprise | $2.99 | 该费率适用于 Google 的 reCAPTCHA Enterprise。 |
| Geetest | $2.99 | 该费率适用于 Geetest 验证码。 |
| Grid Method, Coordinates | $1.20 | 该费率适用于您需要单击图像的任何验证码。 |
| RotateCaptcha | $0.50 | 该费率适用于您需要旋转图像的任何验证码。 |
| Arkose Labs FunCaptcha Token Method | $2.99 | 该费率适用于通过令牌解决的 Arkose Labs FunCaptcha。 |
| KeyCaptcha | $2.99 | 该费率适用于 KeyCaptcha。 |
| hCaptcha | $2.99 | 该费率适用于 hCaptcha。 |
| Capy | $2.99 | 该费率适用于 Capy。 |
| TikTok | $2.99 | 该费率适用于 TikTok captcha。 |
官网链接
https://2captcha.com/zh/
Python集成
官网提供了众多的代码脚本 https://2captcha.com/zh/for-customer

以reCAPTCHA V2示例
pip3 install 2captcha-python
代码GitHub链接:https://github.com/2captcha/2captcha-python
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from twocaptcha import TwoCaptcha
api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
solver = TwoCaptcha(api_key)
try:
result = solver.recaptcha(
sitekey='6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
url='https://2captcha.com/demo/recaptcha-v2')
except Exception as e:
sys.exit(e)
else:
sys.exit('solved: ' + str(result))
总结
验证码的难度随着技术发展越来越高,2Captcha服务可以有效帮助爬虫绕过验证码限制,开发集成简单,推荐使用。
Python爬虫突破验证码技巧 - 2Captcha的更多相关文章
- Python爬虫突破封禁的6种常见方法
转 Python爬虫突破封禁的6种常见方法 2016年08月17日 22:36:59 阅读数:37936 在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长.今天大众好像更倾向于用 ...
- python爬虫-基础入门-python爬虫突破封锁
python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...
- Python爬虫常用小技巧之设置代理IP
设置代理IP的原因 我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站.假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来 ...
- 转载:用python爬虫抓站的一些技巧总结
原文链接:http://www.pythonclub.org/python-network-application/observer-spider 原文的名称虽然用了<用python爬虫抓站的一 ...
- 用python爬虫抓站的一些技巧总结 zz
用python爬虫抓站的一些技巧总结 zz 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本, ...
- python爬虫:一些常用的爬虫技巧
python爬虫:一些常用的爬虫技巧 1.基本抓取网页 get方法: post方法: 2.使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有Pr ...
- python爬虫抓站的一些技巧总结
使用python爬虫抓站的一些技巧总结:进阶篇 一.gzip/deflate支持现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,以VeryCD的主页为例,未压缩版本247K,压缩了以后45 ...
- python爬虫scrapy框架——人工识别登录知乎倒立文字验证码和数字英文验证码(2)
操作环境:python3 在上一文中python爬虫scrapy框架--人工识别知乎登录知乎倒立文字验证码和数字英文验证码(1)我们已经介绍了用Requests库来登录知乎,本文如果看不懂可以先看之前 ...
- Python爬虫入门教程 60-100 python识别验证码,阿里、腾讯、百度、聚合数据等大公司都这么干
常见验证码 之前的博客中已经解决了一些常见验证码的问题,但是验证码是层出不穷的,目前解决验证码除了通过常规手段解决以外,还可以通过人工智能领域的深度学习去解决 深度学习?! 无疑对爬虫coder提高了 ...
- Python爬虫技巧
Python爬虫技巧一之设置ADSL拨号服务器代理 reference: https://zhuanlan.zhihu.com/p/25286144 爬取数据时,是不是只能每个网站每个网站的分析,有没 ...
随机推荐
- Dapr和Rainbond集成,实现云原生BaaS和模块化微服务开发
背景 Dapr 是一个开源的分布式应用运行时,帮助开发者构建松耦合的分布式应用程序,具有良好的可扩展性和可维护性.Rainbond 是一款企业级的云原生应用管理平台,提供了丰富的功能和工具,方便开发者 ...
- 随手记:lnmp 安装完 redis 后无法全局操作
说明redis-server不是全局命令,那么假如到全局即可 假设redis安装目录是:/usr/local/redis/bin/redis-cli ln -s /usr/local/redis/b ...
- YII2.0的文件上传, 并把文件名称重新编译
/** *@Action 文件上传示例 *@这里我们演示的是一个YII2.0的文件上传, 并把文件名称重新编译 *@我们上传的是一个叫 photo 的jpg和png格式的文件 */ Controlle ...
- 最新升级优化 shopee|美客多 Mercadolibre|shopfiy|lazada|独立货代贴单系统 可规模化的贴单打单系统 源码下载独立部署
七想网络 跨境猴 最新优化改进版本的 虾皮代打包-虾皮代贴单 独立部署源码版本货代贴单系统 介绍: 台湾海外仓_shopee货代_虾皮物流–虾皮代贴单 虾皮代打包-虾皮代贴单-虾皮货代平台 shope ...
- c++基本数据结构
基本数据结构: 一.线性表 1.顺序结构 线性表可以用普通的一维数组存储. 你可以让线性表可以完成以下操作(代码实现很简单,这里不再赘述): 返回元素个数. 判断线性表是否为空. 得到位置为p的元素. ...
- Java学习笔记14
1.Arrays类 Arrays类包含用于操作数组的各种方法(如排序和搜索).该类没有构造函数,直接使用类名.方法名()的方法调用需要的方法. 常用方法 方法 作用 public static S ...
- AI人工智能简史
AI人工智能简史 最近学习AI,顺便整理了一份AI人工智能简史,大家参考: 1951年 第一台神经网络机,称为SNARC: 1956年 达特茅斯学院会议,正式确立了人工智能的研究领域: 1966年 M ...
- 浅谈php GC(垃圾回收)机制及其与CTF的一点缘分
0x00 侠客日常(一):CTF江湖试剑 众所周知,在php中,当对象被销毁时会自动调用__destruct()方法,同时也要知道,如果程序报错或者抛出异常,则就不会触发该魔术方法. 看题: < ...
- 2023-03-03:请用go语言调用ffmpeg,摄像头捕获并编码为h264文件,不管音频。
2023-03-03:请用go语言调用ffmpeg,摄像头捕获并编码为h264文件,不管音频. 答案2023-03-03: 使用 github.com/moonfdd/ffmpeg-go 库. 先用如 ...
- c3p0的配置及简单应用
首先简单了解一下JDBC和c3p0 Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸 ...