selenium 保存网站的验证码图片

    2019年10月12日 18:34   90 人阅读  0 条评论   编辑

我正在尝试使用Selenium下载一个验证码图像,但是,下载的图像与浏览器中显示的图像不同。 如果我尝试在不更改浏览器的情况下再次下载该图像,则会得到另一种验证码图像。
解决代码示例:
selenium 保存网站的验证码图片

如:http://ah.189.cn/sso/login

def saveCapcha():
    import base64
    img_base64 = browser.execute_script("""
        var ele = arguments[0];
        var cnv = document.createElement('canvas');
        cnv.width = ele.width; cnv.height = ele.height;
        cnv.getContext('2d').drawImage(ele, 0, 0);
        return cnv.toDataURL('image/jpeg').substring(22);    
        """, browser.find_element_by_xpath('//*[@id="vImg"]'))

    with open(r"image.jpg", 'wb') as f:
        f.write(base64.b64decode(img_base64))

注意:
 cnv.width = ele.width; 宽度

cnv.height = ele.height; 高度

通过下载到本地来检查原始验证码图像大小。在某些情况下,获取到验证图片由于原始图像大小和图像标签大小会有所不同,导致实际会出现大小偏差,可以通过二次加工得到

本文地址:http://www.chenxm.cc/article/925.html
版权声明: 本文为原创文章,版权归  陈新明  所有,欢迎分享本文,转载请保留出处!
PREVIOUS: Nginx IP访问控制,只允许指定的IP地址访问,其他ip禁止访问或者屏蔽指定ip访问
NEXT: linux 获取指定文件行数、文件字节数、文件字数
 相关文章  关键词:

 发表评论

还没有留言,还不快点抢沙发?