当网页登录需要图片验证码时,可使用如下方式进行获取
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()