• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página
SCRAPER.ES

SCRAPER.ES

scraping y automatización

  • Home
  • Precios
  • RTILA WEB SCRAPER
    • RTILA Help
    • RTILA Automation
    • RTILA ROADMAP
    • Premium Support
  • Blog
  • Contactar

WinAutomation multithreading

17 diciembre 2018 por scraper

Tiempo de lectura: 4 minutos

El multithreading es de gran importancia a la hora de construir un scraper o cualquier otro proceso que requiera este tipo de programación.

El principal motivo es que mientras hacemos una petición web nuestro equipo estará ocioso durante unos segundos esperando respuesta y será posteriormente una vez reciba los datos cuando realizará la extracción y accederá a siguiente petición.

Si perdemos por ejemplo el 80% del tiempo en modo de espera, nuestro robot estará procesando tareas solo durante una breve parte del tiempo, aprovechando ese 20% restante.

WinAutomation no permite hasta el momento procesos en paralelo o threads, pero si permite abrir múltiples instancias de un mismo bot; con esto conseguiremos una ejecución en paralelo.

Cada instancia tendrá una ejecución secuencial, es decir, emplearemos un solo hilo de ejecución por cada ejecutable. Esta concurrencia no significa que se realicen las tareas al mismo tiempo, sino que cada proceso solicitará su turno y mediante bloqueos respetarán el orden en las tareas: almacenado de resultados, asignación de direcciones, trazado de errores, etc.

Cada proceso irá alternando estos tiempos dejando huecos al resto cuando sus instrucciones no requieran de un bloqueo.

Este es un esquema simple del código:

Voy a comentar lo más destacado del algoritmo:

Disponemos de un fichero de rutas en el que guardamos una dirección por línea, este fichero de direcciones lo copiamos a la variable lista %feeds%.

También inicializamos el fichero linea.txt con el valor 0. Este archivo lo utilizaremos como índice o marcador de lectura entre procesos.

El siguiente paso es abrir una instancia del navegador que perdurará hasta el final del proceso.

Bloqueamos el Handle A para leer el valor almacenado en linea.txt.

Mientras queden direcciones por visitar, actualizaremos este índice, desbloqueamos el Handle A y visitamos la URL para hacer la extracción de datos.

Una vez tenemos el resultado bloqueamos el Handle B para escribir en el fichero de resultados y volvemos a empezar la siguiente iteración.

Cuando no queden direcciones que recorrer cerramos la instancia del navegador y detenemos el proceso.

Para ejecutar varias instancias abriremos el mismo ejecutable tantas veces como sea necesario.

Es sencillo crear un fichero .bat para que sea mas cómodo.

start scraper.exe
start scraper.exe
start scraper.exe

En el siguiente vídeo tienes un ejemplo del bot con 6 instancias simultáneas:

Recuerda inicializar los ficheros antes de empezar, de forma manual o con un pequeño script:

Para saber si hay un proceso concreto en ejecución, ejecuta una acción Run Powershell Script con:

@(get-process -ea silentlycontinue '%proceso%').count

Sustituyendo la variable %proceso% por el nombre de tu ejecutable, sin la extensión.

Espero que este artículo sobre multi threading con WinAutomation te sirva de base para programar tu propio bot.

Tienes la posibilidad de añadirle algunas las variaciones para tu caso particular, la mejora en optimización del tiempo es evidente y podrás decidir cuantas instancias necesitas sin tener que modificar el código fuente.

Publicado en: WinAutomation

CONSULTAR PRECIO WEB SCRAPING

Escríbenos con la información que necesitas para realizar tu proyecto

Contactar

Footer

SOCIAL

A través de nuestras redes sociales pretendemos compartir contenidos, conversar y generar comunidad.

  • Facebook
  • LinkedIn
  • Twitter

CONTACTO

SCRAPER.ES
San Mateo, 94
12004 Castellón
+34 964360088

MENÚ

  • Home
  • Precios
  • RTILA WEB SCRAPER
    • RTILA Help
    • RTILA Automation
    • RTILA ROADMAP
    • Premium Support
  • Blog
  • Contactar

Categorías

automatizaciones RTILA Rust traducciones tutoriales UBot Studio web scraping WinAutomation

Copyright © 2025 Scraper.es - Web scraping y automatización - Ryan Studios, S.L.