python处理滑块验证码(企查查)实例

① 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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值