Por que o JavaScript é seu principal aliado na automação
Você já se pegou pensando que perde horas em tarefas repetitivas: renomear centenas de arquivos, copiar dados de tabelas, enviar dezenas de e-mails ou verificar se um site caiu? Se sim, este artigo é para você.
O JavaScript há muito deixou de ser apenas uma "linguagem para animar botões". Com o surgimento do Node.js e de bibliotecas poderosas, ele se transformou em uma ferramenta universal para automação de tarefas. E sim, mesmo que você seja um desenvolvedor Python, o JS pode se tornar sua arma secreta: ele funciona em qualquer lugar — no navegador, no servidor, na nuvem e até no Raspberry Pi.
Neste artigo, vamos explorar cenários reais de automação com JavaScript que economizarão dezenas de horas do seu tempo. Sem enrolação — apenas código e prática.
1. Automação de navegador: Puppeteer e Playwright
Imagine: você precisa coletar preços de 500 páginas de uma loja online, mas não há API. Copiar e colar manualmente? Não, obrigado. É aí que entra o Puppeteer — uma biblioteca para controlar o Chromium.
Exemplo: Parsing de títulos de notícias
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 notícias:', titles.slice(0, 10)); await browser.close();})();Este script abre o Hacker News, coleta os títulos das primeiras 10 notícias e os exibe no console. Na vida real, você pode adicionar salvamento em CSV, envio para o Telegram ou gravação em um banco de dados.
Playwright — uma alternativa com superpoderes
Se você precisa trabalhar com vários navegadores (Chrome, Firefox, Safari) ou emular dispositivos móveis, use o Playwright. Ele é mais rápido, mais estável e consegue interceptar requisições.
2. Manipulação de arquivos: renomear, organizar, limpar
Você tem uma pasta com 1000 fotos com nomes como "IMG_20250101_123456.jpg"? Quer organizá-las? O módulo nativo fs (File System) do Node.js resolve isso em segundos.
Exemplo: Renomeação em massa de arquivos
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(`Erro com o arquivo ${file}:`, err); else console.log(`${file} → ${newName}`); } ); });});Você pode modificar facilmente o script: adicionar um filtro por extensão, extrair a data do EXIF, renomear por padrão. Esta é a base sobre a qual dezenas de utilitários são construídos.
3. Automação com CSV e Excel (sem pacote Office)
Tarefas de negócios frequentemente exigem processamento de planilhas. Para CSV, use o módulo nativo ou a biblioteca csv-parser. Para Excel, use xlsx (SheetJS).
Exemplo: Leitura de CSV e criação de relatório
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