Python爬虫中,有哪些免费好用的验证码识别方法或平台推荐?
如题,遇到有验证码的网站,就完全爬不起来了,请大家指点一下,谢谢了。
Python爬虫中,有哪些免费好用的验证码识别方法或平台推荐?
16 回复
接入打码平台
对于Python爬虫中的免费验证码识别,我有几个实战方案:
- 简单验证码自己处理:用Pillow+Tesseract搞定基础数字字母验证码
from PIL import Image
import pytesseract
import requests
from io import BytesIO
# 下载验证码图片
response = requests.get('验证码URL')
img = Image.open(BytesIO(response.content))
# 预处理增强识别率
img = img.convert('L') # 转灰度
img = img.point(lambda x: 0 if x < 128 else 255) # 二值化
# OCR识别
code = pytesseract.image_to_string(img, config='--psm 8 --oem 3')
print(f"识别结果: {code}")
-
复杂验证码用第三方API:
- 2Captcha:有免费额度,支持多种验证码类型
- DeathByCaptcha:价格便宜,API简单
- Capsolver:新平台,免费试用不错
-
深度学习方案:用CNN训练自己的识别模型(适合固定样式)
# 简化的CNN模型示例
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(50, 150, 1)),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(36, activation='softmax') # 26字母+10数字
])
- 打码平台集成示例:
import requests
def solve_captcha_2captcha(image_base64, api_key):
url = "http://2captcha.com/in.php"
data = {
'key': api_key,
'method': 'base64',
'body': image_base64,
'json': 1
}
response = requests.post(url, data=data).json()
if response['status'] == 1:
captcha_id = response['request']
# 轮询获取结果
for _ in range(10):
result = requests.get(
f"http://2captcha.com/res.php?key={api_key}&action=get&id={captcha_id}"
).text
if 'OK' in result:
return result.split('|')[1]
return None
建议:先试Tesseract,不行再考虑API方案。
打码兔~~
如果自己玩的话 ,那就把图片下载下来,手动输入,
大规模的话,可以机器学习识别 或者 接入第三方打码平台。
除了手动, 其他都是付费的
安装 tesseract,然后 Python 调用。
觉得不准确的话,自己写配置去训练。
机器学习?自己训练?
什么样子的验证码,发来瞧瞧
只是登录的话,保存 cookie 定时刷新。
我最近正好做相关的东西,识别验证码真复杂。
目前在用阿里云的英数
把验证码发出来看看,不一定要用打码平台
就微博这种怎么处理?
谢谢各位的回应,暂时用了 tesseract,但是识别度有点低,验证码只要稍微一变点花样,就不能正确识别了
#13 明明可以花几元钱就可以打一两千次的码,偏偏选择成本更高的机器识别
英数是啥,没搜到

