系列文章目录
Python selenium库学习使用实操
Python selenium库学习使用实操二
文章目录
- 系列文章目录
- @[TOC](文章目录)
- 前言
- 一、文字验证码保存
- 二、验证码识别
- 1.引入库
- 2.验证码识别
- 总结
文章目录
- 系列文章目录
- @[TOC](文章目录)
- 前言
- 一、文字验证码保存
- 二、验证码识别
- 1.引入库
- 2.验证码识别
- 总结
前言
国庆回来,接着搬砖,上回说到使用selenium进行自动登录和简单表单的自动填写,由于短时间内多次登录,触发了系统的图像验证码机制,不得不迫使我去学习下验证码识别了。
一、文字验证码保存
平台使用了文字验证码,看了下dom结构,发现是base64的图片,先将base64图片转换成文件。
我们可以看到一个标准的图片转成的base64:base64_str="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA********
需要注意的是,如果我们使用python的imgdata = base64.b64decode(image_base64)解码,image_base64是不包含base64_str的头部的,即从iVBOR***开始才是编码内容,所以正确的解码代码如下
def save_base64_image(image_base64, file_path):
# 看看image_base64类型是不是正确的“bytes”类型
print(type(image_base64))
# 解码图片
head,context=image_base64.split(",") # 将base64_str以“,”分割为两部分
img_data = base64.b64decode(context) # 解码时只要内容部分
#将图片保存为文件
with open("temp.jpg",'wb') as f:
f.write(img_data)
二、验证码识别
1.引入库
该库名也是非常有趣 —— ddddocr(谐音带带弟弟OCR),Github地址:https://github.com/sml2h3/ddddocr
pip install ddddocr
2.验证码识别
def do_OCR(img_path):
ocr = ddddocr.DdddOcr()
with open(img_path, 'rb') as f:
img_bytes = f.read()
res = ocr.classification(img_bytes)
print(res)
return res
总结
`
以上就是文字验证码图像识别的简单操作。接着研究下拉选择框的使用。