(13)python处理简单的英文+数字验证码

当网页登录需要图片验证码时,可使用如下方式进行获取

import json
import requests
import base64


class ImageCode:
    def __init__(self):
        # 图片接口
        self.image_url = "http://xxxxxx/captcha.jpg?"
        # 识别图片的网站地址,使用时要先去登录注册
        self.image_code_url = "http://api.ttshitu.com/predict"
        self.uuid = str(uuid.uuid4())

    # 获取图片的接口,并将接口转成b64格式
    def __get_image(self):
        # 接口所需的随机码
        data = {"uuid": self.uuid}
        image_res = requests.get(url=self.image_url, params=data)
        # 取图片的二进制
        image_byte = image_res.content
        # 将二进制图片转换成64位,方便第三方接口使用
        base64_data = base64.b64encode(image_byte)
        b64 = base64_data.decode()
        # 保存图片,方便查看
        with open(file="code.jpg", mode="wb") as file:
            file.write(image_byte)
        return b64

    # 图片识别网站提供的的接口
    def get_image_code(self):
        b64 = self.__get_image()
        data = {
            "username": "账号名",  # 图片识别网站的用户名
            "password": "密码",  # 图片识别网站的密码
            "typeid": 3,
            "image": b64
        }
        result = json.loads(requests.post(url=self.image_code_url, json=data).text)
        print("识别结果", result)
        if result['success']:
            # result为识别到的验证码
            return result["data"]["result"]
        else:
            return result["message"]


if __name__ == '__main__':
    cl = ImageCode()
    cl.get_image_code()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值