JavaScript para automatización: tareas aburridas, cosa del pasado

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Por qué JavaScript es tu mejor aliado en la automatización



¿Alguna vez te has sorprendido pensando que pierdes horas en tareas repetitivas: renombrar cientos de archivos, copiar datos de tablas, enviar decenas de correos o verificar si un sitio web ha caído? Si es así, este artículo es para ti.



JavaScript hace tiempo que dejó de ser solo "el lenguaje para animar botones". Con la llegada de Node.js y potentes librerías, se ha convertido en una herramienta universal para la automatización de tareas. Y sí, incluso si eres desarrollador Python, JS puede ser tu arma secreta: funciona en todas partes — en el navegador, en el servidor, en la nube e incluso en Raspberry Pi.



En este artículo analizaremos escenarios reales de automatización con JavaScript que te ahorrarán decenas de horas. Sin rodeos: solo código y práctica.



1. Automatización del navegador: Puppeteer y Playwright



Imagina: necesitas recopilar precios de 500 páginas de una tienda online, pero no hay API. ¿Copiar y pegar manualmente? No, gracias. Aquí viene al rescate Puppeteer — una librería para controlar Chromium.



Ejemplo: Scraping de titulares de noticias



const puppeteer = require('puppeteer');

(async () => { const browser = await puppeteer.launch({ headless: true }); const page = await browser.newPage(); await page.goto('https://news.ycombinator.com', { waitUntil: 'networkidle2' }); const titles = await page.evaluate(() => { const items = document.querySelectorAll('.titleline > a'); return Array.from(items).map(item => item.innerText); }); console.log('Últimas noticias:', titles.slice(0, 10)); await browser.close();})();


Este script abre Hacker News, recopila los titulares de las primeras 10 noticias y los muestra en la consola. En la vida real, puedes añadir guardado en CSV, envío a Telegram o registro en una base de datos.



Playwright — una alternativa con superpoderes

Si necesitas trabajar con varios navegadores (Chrome, Firefox, Safari) o emular dispositivos móviles, usa Playwright. Es más rápido, más estable y puede interceptar solicitudes.



2. Trabajo con archivos: renombrar, ordenar, limpiar



¿Tienes una carpeta con 1000 fotos con nombres como "IMG_20250101_123456.jpg"? ¿Quieres ponerlas en orden? El módulo incorporado fs (File System) de Node.js lo hará en segundos.



Ejemplo: Renombrado masivo de archivos



const fs = require('fs');const path = require('path');

const directory = './photos';

fs.readdir(directory, (err, files) => { if (err) throw err; files.forEach((file, index) => { const ext = path.extname(file); const newName = `photo_${String(index + 1).padStart(4, '0')}${ext}`; fs.rename( path.join(directory, file), path.join(directory, newName), (err) => { if (err) console.error(`Error con el archivo ${file}:`, err); else console.log(`${file} → ${newName}`); } ); });});


Puedes modificar fácilmente el script: añadir un filtro por extensión, extraer la fecha de EXIF, renombrar según una plantilla. Esta es la base sobre la que se construyen decenas de utilidades.



3. Automatización del trabajo con CSV y Excel (sin suite ofimática)



Las tareas empresariales a menudo requieren procesar tablas. Para CSV usa el módulo incorporado o la librería csv-parser. Para Excel — xlsx (SheetJS).



Ejemplo: Leer CSV y crear un informe



const fs = require('fs');const csv = require('csv-parser');const createCsvWriter = require('csv-writer').createObjectCsvWriter;

const results = [];

fs.createReadStream('orders.csv') .pipe(csv()) .on('data', (row) => { if (parseFloat(row.total) > 100) { results.push({ orderId: row.id, client: row.name, sum: row.total }); } }) .on('end', () => { const csvW

Blogs

Book Recommendations