1、首先需要安装并且配置 tesseract-ocr 插件以及环境变量(在此不做演示)
2、下载并且安装 rddddoc 、DdddOcr 库
3,导入需要用到的库
import requests
from PIL import Image
from io import BytesIO
from selenium import webdriver
from selenium.webdriver.common.by import By
from rddddoc import DdddOcr
import re
import base64 #用来解码前端页面获取的图片元素
4、启动图像识别功能(代码演示)
def www_login_token_03():
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--ignore-certificate-errors')
driver = webdriver.Chrome(options=options)
driver.get(r'https://xxx.xxx.xx/login')
# 获取验证码图片链接
element = driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/div[2]/form/div[3]/div/img') #获取图片元素的绝对路径
img_src = element.get_attribute("src")
_, img_data = img_src.split(",", 1)
img_data = base64.b64decode(img_data) # 通过bases解码图片(这个要看公司使用的是什么加密方式)
# 保存验证码图片
image = Image.open(BytesIO(img_data))
image.save('images/yzm.png')
# OCR识别验证码
ocr = DdddOcr()
with open('images/yzm.png', 'rb') as img_file:
img = img_file.read()
time.sleep(1)
captcha = ocr.classification(img)
print("验证码:", captcha)
# 输入账号密码和验证码
driver.find_element(By.XPATH, '/html/body/div[1]/div/div/div[2]/div[2]/div[2]/form/div[1]/div/div/input').send_keys(
'xxxxxxxxx')
driver.find_element(By.XPATH, '/html/body//div[2]/form/div[2]/div/div/input').send_keys(
'xxxxx')
driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/form/div[3]/div/div/input').send_keys(
captcha)
driver.find_element(By.XPATH, '/html/body/div/div[1]/div/div/div[2]/div[2]/button/span').click()
time.sleep(3)
# 执行JavaScript代码获取令牌
script = "return localStorage.getItem('user:token');"
time.sleep(4)
token = driver.execute_script(script) # 通过前端代码获取到了页面缓存的token
print("令牌 (Token):", token)
# 关闭浏览器
driver.quit()
return token
if __name__ == '__main__':
token = www_login_token_03()
以上代码是封装好了的,可以直接使用