Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: LKI en Agosto 12, 2019, 10:33:28 PM

Título: [SOLUCIONADO] Resolución de captcha
Publicado por: LKI en Agosto 12, 2019, 10:33:28 PM
Hola a todos!! ¿Cómo están?

Tengo una inquietud sobre la resolución de un captcha. He estado investigando y he descubierto que es posible la resolución de captchas de manera automática utilizando una técnica conocida como OCR (Reconocimiento Óptico de caracteres). Por el momento todo bien, mi problema surge cuando al inspeccionar el captcha en cuestión me encuentro con lo siguiente:

(https://i.ibb.co/6gKwDG7/Captura1.png)

Cómo se ve en la imágen el tag img tiene un atributo src que apunta a una url dinámica, dejo el nodo html:
<img id="captchaLogin" src="captcha/default.aspx?pos=2&amp;vers=427404578" alt="Código de verificación">

Este es mi mayor problema ya que al tratar de obtener la imágen del captcha mediante varios métodos desde el lado de javascript he probado con librerías como html2canvas y html2picture, modificar el atributo del nodo img para que al hacer click descargue la imágen con el atributo donwload de HTML5, utilizar drag and drop creando nodos para que copie la imágen, etc y al final el resultado fue el mismo, el navegador en cada uno de los métodos realizaba una petición HTTP GET a la URL dinámica y la misma generaba una imágen distinta a la orginal, por lo que ninguno generaba el resultado que yo necesito, es decir, descargar la imágen original generada al cargar la página web. Tengo algunas ideas pero no se como se podrían llevar a cabo ya que personalmente no es mi fuerte la programación del lado cliente, como por ejemplo:

(https://i.ibb.co/XV71QBT/Captura.png)

El navegador chrome tiene una pestaña que es neetwork en donde al aplicar el filtro Img permite visualizar los recursos de tipo Imágen que la web utiliza y haciendo click derecho se puede guardar la imágen, obviamente no se si es posible realizar esto mediante una forma automática.

Espero que alguno de ustedes pueda ayudarme. Saludos!!
Título: Re:Resolución de captcha
Publicado por: LKI en Agosto 13, 2019, 01:40:06 PM
Solucionado!! Encontré un script que utilizando la libreria PIL de python pude sacar una foto al captcha sin tener que realizar ninguna petición HTTP GET como ocurría con los métodos utilizados con javascript.

Código de resolución:

Función para tomar la foto:
def get_captcha(driver, element, path):
    # now that we have the preliminary stuff out of the way time to get that image :D
    location = element.location
    size = element.size
    # saves screenshot of entire page
    driver.save_screenshot(path)

    # uses PIL library to open image in memory
   
    image = Image.open(path)

    left = location['x']
    top = location['y']
    right = location['x'] + size['width']
    bottom = location['y'] + size['height']

    image = image.crop((left, top, right, bottom))  # defines crop points
    image.save(path, 'png')  # saves new cropped image
   



Código que llama a la función:

# download image/captcha
img = driver.find_element_by_css_selector("#captchaLogin")
get_captcha(driver, img, "captcha.png")
Título: Re:[SOLUCIONADO] Resolución de captcha
Publicado por: blityon en Agosto 14, 2019, 12:59:29 PM
Muchas gracias por tu aporte, me ha servido para otras cosas.