[SOLUCIONADO] Resolución de captcha

Iniciado por LKI, Agosto 12, 2019, 10:33:28 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 12, 2019, 10:33:28 PM Ultima modificación: Agosto 13, 2019, 03:33:12 PM por xyz
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:


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:
Código: php
<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:


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!!
Ser mejor cada día es mi meta

=LKI=

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:
Código: php
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:
Código: php

# download image/captcha
img = driver.find_element_by_css_selector("#captchaLogin")
get_captcha(driver, img, "captcha.png")
Ser mejor cada día es mi meta

=LKI=

Muchas gracias por tu aporte, me ha servido para otras cosas.