最近在学自动化,网页登录验证码图片是base64格式,用python解码要不就是是黑底图片,要不就是报错,提示:Incorrect padding。
从网上也找了许多解决方法,如末尾增添删除“=”,都没有用,于是就打印了一下:
iVBORw0KGgoAAAANSUhEUgAAAGQAAAAZCAIAAABIPBwcAAACfklEQVR42r2ZPU4EMQyFfRgkOkQL%0AxTb0lDQcgJ6OU3EHRElJx2UYKatg+ef5eSaLlGI3k8nG3zx7bK/8fH+F4/3zYxvZ1SOLL7rJ8jOM%0AmTEp+DZ9J7BkISxyq4VkvZme1/ggzNHHamxMOL/DJJLXWhnq3TJxxbBCOtkMNhKblB0RPBVs1UVh%0AbUNKTfEUQs8FJpVHxLr7N1hzErkhlhIZ5kpY5od4w/DOl+Al/MMsjQmXMbC6SinPsztW4tslXGQm%0A8ZN/Ob2aQSLwNvvFTzcnPVqwAK/n+6s51sACPqUvAVggTo8Pj2+329DbAlJjMErHVzUpjayMCRJG%0A9DLV0osHIJxwZJrXsDJSfobnFc5MNWl2jLgEE2WC1FQTiEQGHA/L/OJucYHFAJZZL6X3lXER+GAp%0A2wnLP0ygrFDC1w93eGSmZZHLfz0Ki4xZmXsCZW1fw5iVJYMlrNC5NKlMjzUsnpemY3h5wwYdPBhY%0AWfLM1H1zxpDCtcQ5z+ILQCbxMSHMLONheSnpAB++oLth3pMCMfcvKSUzaVxF+5cjzmwnO5BhGS46%0AwJsjMW6ob8lggYJPcIYFfDh7aPtgZQHenOQgLL0VhhU6nABHBeWeRhMGe7LnY96GIM8ybljmcbiO%0A6Za6Z1ggUy8zVZ83ZKSyMkUryw/+bcgEaQMrfA/i4CXAR7KQ78Xl84YlsDyv7D2FO0jh4UtY/sAS%0AOmp5oG6rK/sJxiPIZmSZvvvd+AZ83M9i8klfJJL9iX2tZ1wMdHuq5fEyTQRt5bJYAccqk1umvwqk%0AjXl1t+2W3wUspr/cuqWbZ4MKnDE+A8qIK9xcWg1MUlwgrPAq4P8HaD1Fvn/rL/0CQXut+hVozmIA%0AAAAASUVORK5CYII=
通过下载验证码图片,然后对图片base64加密,得到以下:
iVBORw0KGgoAAAANSUhEUgAAAGQAAAAZCAIAAABIPBwcAAACfklEQVR42r2ZPU4EMQyFfRgkOkQLxTb0lDQcgJ6OU3EHRElJx2UYKatg+ef5eSaLlGI3k8nG3zx7bK/8fH+F4/3zYxvZ1SOLL7rJ8jOMmTEp+DZ9J7BkISxyq4VkvZme1/ggzNHHamxMOL/DJJLXWhnq3TJxxbBCOtkMNhKblB0RPBVs1UVhbUNKTfEUQs8FJpVHxLr7N1hzErkhlhIZ5kpY5od4w/DOl+Al/MMsjQmXMbC6SinPsztW4tslXGQm8ZN/Ob2aQSLwNvvFTzcnPVqwAK/n+6s51sACPqUvAVggTo8Pj2+329DbAlJjMErHVzUpjayMCRJG9DLV0osHIJxwZJrXsDJSfobnFc5MNWl2jLgEE2WC1FQTiEQGHA/L/OJucYHFAJZZL6X3lXER+GAp2wnLP0ygrFDC1w93eGSmZZHLfz0Ki4xZmXsCZW1fw5iVJYMlrNC5NKlMjzUsnpemY3h5wwYdPBhYWfLM1H1zxpDCtcQ5z+ILQCbxMSHMLONheSnpAB++oLth3pMCMfcvKSUzaVxF+5cjzmwnO5BhGS46wJsjMW6ob8lggYJPcIYFfDh7aPtgZQHenOQgLL0VhhU6nABHBeWeRhMGe7LnY96GIM8ybljmcbiO6Za6Z1ggUy8zVZ83ZKSyMkUryw/+bcgEaQMrfA/i4CXAR7KQ78Xl84YlsDyv7D2FO0jh4UtY/sASOmp5oG6rK/sJxiPIZmSZvvvd+AZ83M9i8klfJJL9iX2tZ1wMdHuq5fEyTQRt5bJYAccqk1umvwqkjXl1t+2W3wUspr/cuqWbZ4MKnDE+A8qIK9xcWg1MUlwgrPAq4P8HaD1Fvn/rL/0CQXut+hVozmIAAAAASUVORK5CYII=
通过对比,不难发现,从网页直接解码的里面有很多“%0A”,本来以为这三个凑起来转为另一种编码方式会是一个符号,从网上也没有找到解决方法,就想删掉一下试试,删掉以后就解决问题,只需在获取base64编码后加上一句替换即可
img=img.replace('%0A','')
img为获取到的base64编码