Я пытаюсь сохранить капчу локально с помощью браузера 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:
они выглядят одинаково, но когда вы увеличиваете их, пиксели отличаются.
Так, как я могу получить data-URI первого (с высоким качеством), или есть какой-нибудь альтернативный способ без использования data-URI (в режиме безголового браузера)