通过百度api和selenium实现验证码识别

import re
from aip import AipOcr
from selenium import webdriver
import time
from PIL import Image
from selenium.webdriver.common.by import By


def orc_test():
    driver = webdriver.Edge()
    driver.maximize_window()
    time.sleep(1)
    url = 'http://188.18.18.227:8091'
    driver.get(url)
    driver.save_screenshot('save_screenshot.png')

    code_ele = driver.find_element(By.ID, 's-canvas')

    right = code_ele.size['width'] + 1400  # 上面右边点的坐标
    down = code_ele.size['height'] + 380  # 下面右边点的坐标
    image = Image.open('save_screenshot.png')
    code_image = image.crop((1360, 380, right, down))
    code_image.save('code_image.png')

    APP_ID = ''
    API_KEY = ''
    SECRET_KEY = ''
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

    # 读取图片

    def get_file_content(file_path):
        with open(file_path, 'rb') as fp:
            return fp.read()

    image = get_file_content('code_image.png')

    # 调用通用文字识别(高精度版) """
    code_ocr_original_result = client.basicAccurate(image)
    code_ocr_final_result = ''
    for text in code_ocr_original_result['words_result']:
        # print(type(text))
        # print(text)
        for i in text.values():
            code_ocr_final_result = code_ocr_final_result + i
        # print(code_ocr_final_result)

    code_ocr_final_result_with_out = code_ocr_final_result.replace(' ', '')
    result = re.sub('[\W_]', '', code_ocr_final_result_with_out)
    return result


if __name__ == '__main__':
    print(orc_test())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 Python Selenium 调用阿里 API 实现图片验证码识别,您需要先注册阿里云账户并开通 OCR 服务。然后,您可以按照以下步骤进行操作: 1. 安装阿里云 Python SDK 您可以使用以下命令进行安装: ``` pip install aliyun-python-sdk-core-v3 pip install aliyun-python-sdk-ocr ``` 2. 在 Python 中调用 OCR API 以下是一个示例代码,它可以将本地图片文件上传到阿里云 OCR 服务,并返回识别结果: ```python from aliyunsdkcore.client import AcsClient from aliyunsdkocr.request.v20191230 import RecognizeCharacterRequest # 阿里云 OCR API 配置 access_key_id = 'your_access_key_id' access_key_secret = 'your_access_key_secret' region_id = 'cn-shanghai' product_name = 'ocr' domain = 'ocr.cn-shanghai.aliyuncs.com' # 初始化阿里云 client client = AcsClient(access_key_id, access_key_secret, region_id) # 读取本地图片文件 with open('captcha.png', 'rb') as f: image_data = f.read() # 构造 OCR API 请求 request = RecognizeCharacterRequest.RecognizeCharacterRequest() request.set_ImageURL(image_data) request.set_accept_format('json') # 调用 OCR API 进行识别 response = client.do_action(request) # 解析识别结果 result = response.decode('utf-8') print(result) ``` 在上面的示例代码中,`access_key_id` 和 `access_key_secret` 是您的阿里云账户的 Access Key ID 和 Access Key Secret,`region_id` 是 OCR 服务所在的地域,`product_name` 是 OCR 服务的产品名称,`domain` 是 OCR 服务的 API 域名。 需要注意的是,OCR 服务支持的图片格式有限,只支持 JPEG、JPG、PNG、BMP 等常见格式。另外,OCR 服务的免费配额较低,需要购买更多的调用次数才能满足大规模的识别需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值