① Imagx=248.53是基于企查查的滑块横条的X轴长度,其他的网址或滑块需要重新配置
在这里插入图片描述
②param url1:背景链接
在这里插入图片描述

③param url2:滑块链接
在这里插入图片描述

④param geetest1:滑块背景图片
在这里插入图片描述

把背景链接存储为图片文件保存下来
⑤param geetest2:为滑块图片
在这里插入图片描述
代码示例如下:

import base64
import os
import cv2
import numpy as np
import requests
def QichachaYanzheng(url1:str,url2:str,imgpath,ImgX=248.53):
    # 企查查默认验证码宽度248.53
    # 下载链接图片到指定目录
    '''
    :param url1:背景链接
    :param url2:滑块链接
    :param geetest1:滑块背景图片
    :param geetest2:为滑块图片
    :return:
    '''
    geetest1=download_img(url1,"gt1",imgpath)
    geetest2=download_img(url2,"gt2",imgpath)
    with open(geetest1, "rb") as f:  # 转为二进制格式
        base64_data1 = base64.b64encode(f.read())  # 使用base64进行加密
    with open(geetest2, "rb") as f:  # 转为二进制格式
        base64_data2 = base64.b64encode(f.read())  # 使用base64进行加密
    return CalculateNotchDistance(base64_data1,base64_data2,ImgX)

def CalculateNotchDistance(mBgB64String:str, mBlockB64String:str, mImageWebShowX:int):
    img_BgBgr = cv2.imdecode(np.frombuffer(base64.b64decode(mBgB64String), np.uint8), cv2.IMREAD_COLOR)
    img_BgGray = cv2.cvtColor(img_BgBgr, cv2.COLOR_BGR2GRAY)
    img_BlockGray = cv2.imdecode(np.frombuffer(base64.b64decode(mBlockB64String), np.uint8), cv2.IMREAD_GRAYSCALE)
    dct_Result = cv2.minMaxLoc(cv2.matchTemplate(img_BgGray, img_BlockGray, cv2.TM_CCOEFF_NORMED))
    return int(dct_Result[2][0] * mImageWebShowX / img_BgBgr.shape[1])

# 下载和保存图像
def download_img(img_url,ImgName,imgpath=os.path.join(os.path.dirname(os.path.dirname(os.getcwd())),"res\验证码暂存")):
    # 验证码图片默认暂存位置:"C:\Users\EDY\Documents\UiBot\creator\Projects\高级\res\验证码暂存"
    api_token = "fklasjfljasdlkfjlasjflasjfljhasdljflsdjflkjsadljfljsda"
    header = {"Authorization": "Bearer " + api_token} # 设置http header,视情况加需要的条目,这里的token是用来鉴权的一种方式
    r = requests.get(img_url, headers=header, stream=True)
    print(r.status_code) # 返回状态码
    if r.status_code == 200:
        open(imgpath+"\\{}.png".format(ImgName), 'wb').write(r.content) # 将内容写入图片
        print("done")
    return imgpath+"\\{}.png".format(ImgName)
def test():
    import sys
    return sys.path

# if __name__ == '__main__':
#     test()

把滑块图片存储为图片保存下来
其他包自行导入下载,cv2包百度网盘链接如下:
链接: cv2 提取码: 9r8k

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐