Automatización

RPA con Python: automatizar procesos empresariales sin pagar licencias de $50,000

UiPath y Automation Anywhere son potentes pero tienen precios que los hacen inaccesibles para PyMEs. Con Python, Playwright y algunas librerías open source se puede automatizar el 80% de los mismos casos de uso a costo casi cero.

N-Byte
7 min lectura

RPA (Robotic Process Automation) prometió eliminar el trabajo manual repetitivo. En la práctica, las plataformas líderes del mercado tienen licencias que comienzan en cinco cifras anuales, requieren formación especializada y muchas veces crean dependencia de vendor difícil de revertir. Para una PyME o un equipo técnico con recursos limitados, Python es una alternativa real.

Qué puedes automatizar con Python

Interacción con aplicaciones web: Playwright (o su alternativa Selenium) controla un navegador completo con código Python. Puedes hacer login en cualquier sistema web, navegar formularios, extraer datos de tablas, subir archivos o hacer clic en botones exactamente como lo haría un usuario humano. La ventaja de Playwright sobre Selenium es su manejo nativo de páginas dinámicas con JavaScript y su API más moderna.

Integración con APIs: Si la aplicación tiene API, úsala en lugar del browser. httpx y requests permiten automatizar integraciones con ERPs, CRMs y sistemas de gestión que exponen endpoints, sin el overhead de simular un navegador.

Procesamiento de archivos Office: openpyxl (Excel), python-docx (Word) y pypdf (PDF) permiten leer, transformar y generar documentos automáticamente. El caso de uso más común: consolidar datos de múltiples Excel en un reporte estandarizado.

Automatización de escritorio: Para aplicaciones de escritorio que no tienen API ni interfaz web, pyautogui o pywinauto permiten controlar el mouse, teclado y ventanas de Windows directamente.

Un ejemplo práctico: descarga de facturas de un portal web

from playwright.sync_api import sync_playwright
from datetime import datetime
import os
 
def descargar_facturas(usuario: str, contraseña: str, mes: int, año: int):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
 
        # Login
        page.goto("https://portal.proveedor.com/login")
        page.fill("#username", usuario)
        page.fill("#password", contraseña)
        page.click("button[type=submit]")
        page.wait_for_url("**/dashboard")
 
        # Navegar a facturas del mes
        page.goto(f"https://portal.proveedor.com/facturas?mes={mes}&año={año}")
        facturas = page.query_selector_all(".factura-row")
 
        os.makedirs(f"facturas/{año}/{mes:02d}", exist_ok=True)
 
        for factura in facturas:
            numero = factura.query_selector(".numero").inner_text()
            with page.expect_download() as download_info:
                factura.query_selector(".btn-descargar").click()
            download = download_info.value
            download.save_as(f"facturas/{año}/{mes:02d}/{numero}.pdf")
 
        browser.close()
        print(f"Descargadas {len(facturas)} facturas")

Cuándo Python no es suficiente

Python tiene límites reales para RPA: no incluye un orquestador visual para flujos complejos con múltiples pasos y condiciones, el manejo de errores y reintentos requiere código explícito, y no tiene la capacidad de gestión centralizada de bots (quién ejecutó qué, cuándo falló) que ofrecen las plataformas empresariales.

Para casos de uso de alta criticidad con docenas de procesos corriendo en paralelo, la plataforma RPA puede justificar su costo. Para el 80% de los procesos repetitivos en PyMEs —reportes, sincronización de datos, generación de documentos, notificaciones—, Python con un scheduler básico (cron, Prefect, o Celery) es más que suficiente.

Stack recomendado para empezar

  • Playwright: automatización web
  • openpyxl + pandas: procesamiento de datos
  • httpx: integración con APIs
  • Prefect o APScheduler: orquestación y scheduling
  • Loguru: logging estructurado para auditoría

Con estas cinco librerías puedes cubrir la mayoría de casos de uso de RPA en una organización mediana, con un costo de infraestructura de menos de $20/mes en un VPS pequeño.

Recibe artículos de Automatización