Leer CAPTCHA desde EXCEL | Consultas web

Hola a todos, hoy veremos cómo leer el CAPTCHA de una página web desde Excel, trataré de hacer una explicación lo menos técnica posible.

Para que entiendas bien este proceso debes saber un poco de desarrollo web, programación en VBA y manejo de API

Este método lo he probado para páginas como SUNAT y EsSalud (Perú) y el resultado ha sido exitoso!.

Y tú lector, tal vez pienses que voy a leer un CAPTCHA “Estático”, pues te digo que NO, vamos a leer un CAPCTHA “Dinámico”, de los que actualizas la web y cambia de valor.

Te menciono que en esta publicación sólo te enseñaré a leer el captcha, no a ingresarlo en una casilla y luego leer otra información.

Programaremos en Excel para poder leer el captcha, por lo que es obligatorio que sepas programar en VBA.

En este ejemplo trabajaremos con la página de SUNAT CONSULTA RUC SUNAT de mi lindo Perú de donde soy yo.

A continuación debemos seguir los siguientes 6 SENCILLOS PASOS que nos ayudarán a lograr nuestro objetivo:

Paso #1: Ingresa tu web y obtén el URL del captcha

Este es el primer paso, vamos a ingresar a nuestra web, en mi caso es la página de consulta ruc de SUNAT

SUNAT sin captcha

Procedemos a dar clic derecho sobre el captcha y luego en “Abrir imagen en pestaña nueva” y nos mostrará lo siguiente:

Excel evadir captcha

Muy bien! Ahora ya tenemos el URL del captcha

Paso #2: Descargaremos el CAPTCHA desde Excel

Bien! ahora vamos a programar una macro en Excel que descargue este captcha de SUNAT.

Para poder realizar esta acción utilizaremos a la API URLDownloadToFile, la cual expliqué su funcionamiento en una publicación anterior (Descargar archivos con VBA)

Procedemos a crear un módulo y llamamos a nuestra API

En este ejemplo, lo he guardado con el nombre mi_imagen.jpg en mi carpeta “luis” dentro del disco D, tú puedes escoger la ruta que prefieras.

Paso #3: Convertir el CAPTCHA en un archivo de TEXTO

Antes de empezar a explicar este paso, necesitarás los archivos con los que trabajeremos

Te invito a que los descargues GRATUITAMENTE desde este DESCARGAR ARCHIVOS ECOMMERCE

Muy bien! Este paso es el más dificil, para poder leer el Captcha de SUNAT, debemos convertir la imagen que hemos descargado en texto.

Excel no sería capaz de convertir a Texto una Imagen por sí sólo, por lo que necesita de un par de amigos.

Usaremos a un archivo DLL y a un tesseract, ambos juntos con el CMD de Windows serán capaces de convertir la imagen en texto.

En muchos lenguajes de programación se utilizan los tesseract-ocr/tessdata para leer los captcha, en este POST sólo lo estoy adaptando esta lógica a nuestro amigo Excel

Antes de empezar a programar en Excel, te mostraré cómo generar el archivo TXT desde el CMD, para ello no es necesario tener permisos de administrador

Muy bien, yo estoy trabajando este ejercicio en una carpeta llamada “luis” en mi disco D, dentro de ella tengo lo siguiente:

  • Un archivo con nombre modulo.dll
  • La imagen que he descargado con nombre mi_imagen.jpg
  • Una carpeta tessdata y dentro de ella un archivo de nombre eng.traineddata

Leer capctha desde excel

Leer captcha macros excel

Convertir el captcha en texto desde el CMD

Muy bien! Ingresemos al CMD (Presiona el botón y escribe CMD)

Leer captcha excel vba

Ahora escribimos lo siguiente:

CMD leer captcha sunat

Al final de la cadena debes escribir el nombre del archivo TXT, en mi caso lo he escrito al final luisrojaspapu, damos un ENTER y nos muestra lo siguiente:

Excel Sunat

Revisamos la carpeta tessdata, y encontraremos nuestro archivo de texto luisrojaspapu.txt

Consulta ruc cmd

Abrimos el archivo y la imagen que descargamos de SUNAT

Captcha en texto OCR

Y OMG! ya lo convertirmos en texto

Convertir el captcha en texto desde Excel VBA

Ahora debemos realizar esta misma acción desde Excel VBA, así que manos a la obra

Y listo! ya lo tenemos, recuerda que cuando ejecutas el SHELL desde esperar unos segundos para que se genere el TXT

Si deseas tesseract en otros idiomas puedes visitar el siguiente enlace  GIT HUB

Paso #4: Leer el archivo TXT generado

Muy bien! Ya descargamos el captcha desde Excel ejecutando en CMD

Tener muy presente que después de ejecutar a Shell debemos esperar unos segundos para generar el archivo TXT

Por el hecho que debemos esperar unos segundos usaremos a Application.wait y a GoTo

Antes de leer el archivo, debemos asegurarnos de su existencia, y pienso que este código nos puede ayudar

Vamos a entenderlo:

  1. Se declara la variable contador de tipo byte (Valor por defecto CERO) y Ruta String
  2. Ruta nos devolverá un el valor luisrojaspapu.txt si en caso existe el archivo
  3. Preguntamos si existe el archivo descargado en el paso #3, y si contador es menor a 5
  4. Si en caso no existe y contador es menor a 5, ingresa y espera un segundo (Espera a que se genere) y aumenta a contador en uno
  5. contador aumenta en uno y se va nuevamente al IF
  6. Si aún no se ha ejecutado, vuelve a esperar y aumentar en uno a contador
  7. Es decir esperará a lo mucho 5 segundos a que se genere el archivo TXT

Muy bien! cada vez estamos más cerca de Leer captcha desde Excel

Ahora leeremos el archivo TXT generado, de la siguiente forma

Creamos una variable de tipo String llamada LeerCaptcha, y en ella almacenamos el valor del archivo de texto

Ordenamos nuestro código y nos quedaría de la siguiente forma:

Hemos usado declaración de variables cortas, lo cual lo expliqué en un post anterior Ver artículo

Paso #5: Limpiar el texto leído

Muy bien, en el paso anterior hemos podido leer captcha desde Excel VBA, pero aún “esta sucio”

¿Está sucio? será la pregunta que te debes estar haciendo, y te explicaré por qué

  1. El texto que hemos leído probablemente tenga saltos de línea
  2. El texto podría tener caracteres extraños como Å, €, ?, ‡, entre otros
  3. Si vamos a leer sólo texto, entonces reemplacemos los números por sus similares visibles y viceveresa

El tercer punto se refiere a que si por ejemplo yo voy a leer el texto ASBD, y me genera A5BD, debo reemplazar el número 5 por la letra S

Muy bien, esta parte del código para poder leer el captcha correctamente desde Excel es muy personalizado

Debido al tipo de captcha que vas a leer, en mi caso es un captcha de sólo textos

A continuación te dejo un código estandar que te recomiendo adaptarlo a tus necesidades, y lo colocaremos dentro del While del paso anterior

Con este código estamos a muy poco de terminar! Ahora debemos borrar los archivos con los que hemos trabajado

Muy bien! Ya casi hemos terminado de lograr nuestro objetivo que es Leer captcha desde Excel VBA

Paso #6: Integrar todos los códigos que hemos desarrollado

Así es, ahora es el momento de integrar todo lo que hemos visto en los pasos anteriores

El valor final de nuestro pequeño proyecto se almacenerá en la variable LeerCaptcha, por que esta variable será Pública

Al final he colocado un MsgBox que nos muestre el captcha, y obtenemos lo siguiente:

evadir captcha desde Excel

¡Y lo hemos logrado! ¡Hemos podido leer el captcha desde Excel!

Si en caso a usted lector no le muestra el mismo resultado de la imagen entonces puede crear un bucle para que repita el proceso

La validación la daría una web o algún otro agente

Te dejo el archivo que he trabajado en mi tienda virtual, es GRATIS, sólo necesitas crear una cuenta DESCARGAR PRODUCTO GRATIS

Espero te haya ayudado mi tutorial, si te gustó por favor déjame un comentario, me ayudarías mucho

Cualquier duda o consulta recuerda que me la puedes hacer al correo luisrojas@tutorialesexcel.com

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Una idea sobre “Leer CAPTCHA desde EXCEL | Consultas web”