我正在尝试使用无头的Chrome浏览器在本地保存验证码,不想截图也不会丢失验证码的质量。
我想出的方法是将图像转换为data-URI,然后将其写入文件。
我尝试以下代码,它确实有效,并为我保存了图像。问题是,我得到的验证码不如我刚刚下载或拍摄屏幕截图的验证码好。
captcha_img_element = browser.find_element_by_xpath("//span[text()='some text']//img")
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);
""", captcha_img_element)
with open("captcha_js.png", 'wb') as f:
f.write(base64.b64decode(img_base64))
高质量的一个:
<<我通过js代码获得的代码:
<<它们看起来相同,但是当您放大它们时,像素不同。
因此,如何获得第一个的数据URI(高质量),或者有没有其他方法而不使用数据URI(在无头浏览器模式下)
我正在尝试使用无头的Chrome浏览器在本地保存验证码,不想截图也不会丢失验证码的质量。我想出的方法是将图像转换为...