天天看點

超級鷹平台識别boss驗證碼使用超級鷹打碼平台擷取坐标點選驗證碼圖示對應坐标

使用超級鷹打碼平台擷取坐标點選驗證碼圖示對應坐标

将本地圖檔打開使用超級鷹平台驗證擷取坐标值

import requests
from hashlib import md5
from PIL import Image

def Chaojiying_Client(object):
	.... # 超級鷹用戶端部分代碼可以直接在超級鷹官網擷取

# 根據超級鷹規則處理驗證碼圖檔大小
def format_img():
	# 打開儲存的驗證碼圖檔
    img = Image.open('test.jpg')
    # 擷取圖檔規格
    w, h = img.size
    # 超級鷹平台對上傳的圖檔有規格大小限制,長度不能超過460,寬度不能超過310
    w_s = 310  # 指定寬度
    h_s = int(w_s / w * h)  # 根據寬度比例擷取對應高度
    # 指定圖檔大小生成新的圖檔并儲存
    img = img.resize((w_s, h_s), Image.ANTIALIAS)
    img.save('show.png')
    # 傳回縮放比例
    return w_s / w

# 擷取驗證結果坐标
def get_coord():
    # 生成超級鷹用戶端
    chaojiying = Chaojiying_Client(username, password, software_key)  # 使用者中心>>軟體ID 生成一個替換 96001

    # 打碼識别錯誤回報接口,可以根據實際情況判斷條件調用,傳入參數為超級鷹傳回資料中的pic_id數值
    # print(chaojiying.ReportError(pic_id))

    # 根據超級鷹平台圖檔規格大小對驗證碼圖檔進行縮放/放大并擷取比例
    preprotion, im = format_img()

    # 将符合規格的圖檔大小發送給超級鷹api擷取傳回值,驗證碼類型在官網檢視
    with open('show.png', 'rb') as fp:
        im = fp.read() 
    s = chaojiying.PostPic(im, 9004)  # 9004驗證碼類型  官方網站>>價格體系

    # 從超級鷹響應資料裡擷取坐标值
    rangle = s['pic_str'].split('|')
    # 建立清單用于接收坐标結果
    result = []
    
    for i in rangle:
    	# 分割為x坐标和y坐标
        i = i.split(',')
        # 将x和y坐标按比例還原組合為元組追加到清單中
        result.append((int(int(i[0]) / preprotion), int(int(i[1]) / preprotion)))

    # 傳回實際坐标結果集
    return result