Pourquoi JavaScript est votre meilleur allié en automatisation
Avez-vous déjà eu l'impression de passer des heures sur des actions répétitives : renommer des centaines de fichiers, copier des données depuis des tableaux, envoyer des dizaines d'e-mails ou vérifier si un site n'est pas tombé ? Si oui, cet article est pour vous.
JavaScript a depuis longtemps cessé d'être simplement un « langage pour animer des boutons ». Avec l'arrivée de Node.js et de bibliothèques puissantes, il est devenu un outil universel pour l'automatisation des tâches. Et oui, même si vous êtes développeur Python, JS peut devenir votre arme secrète : il fonctionne partout — dans le navigateur, sur le serveur, dans le cloud et même sur un Raspberry Pi.
Dans cet article, nous allons explorer des scénarios d'automatisation réels en JavaScript qui vous feront gagner des dizaines d'heures. Pas de blabla — seulement du code et de la pratique.
1. Automatisation du navigateur : Puppeteer et Playwright
Imaginez : vous devez collecter les prix de 500 pages d'une boutique en ligne, mais il n'y a pas d'API. Un copier-coller manuel ? Non merci. Puppeteer vient à la rescousse — une bibliothèque pour contrôler Chromium.
Exemple : Parsing des titres d'actualités
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('Dernières actualités :', titles.slice(0, 10)); await browser.close();})();Ce script ouvre Hacker News, collecte les titres des 10 premières actualités et les affiche dans la console. Dans la vraie vie, vous pouvez ajouter la sauvegarde en CSV, l'envoi vers Telegram ou l'écriture dans une base de données.
Playwright — une alternative surpuissante
Si vous devez travailler avec plusieurs navigateurs (Chrome, Firefox, Safari) ou émuler des appareils mobiles, utilisez Playwright. Il est plus rapide, plus stable et sait intercepter les requêtes.
2. Travail avec les fichiers : renommage, tri, nettoyage
Vous avez un dossier avec 1000 photos nommées comme "IMG_20250101_123456.jpg" ? Vous voulez les organiser ? Le module intégré fs (File System) dans Node.js s'en charge en quelques secondes.
Exemple : Renommage en masse de fichiers
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(`Erreur avec le fichier ${file} :`, err); else console.log(`${file} → ${newName}`); } ); });});Vous pouvez facilement modifier le script : ajouter un filtre par extension, extraire la date des EXIF, renommer selon un modèle. C'est la base sur laquelle reposent des dizaines d'utilitaires.
3. Automatisation du travail avec CSV et Excel (sans suite bureautique)
Les tâches professionnelles nécessitent souvent le traitement de tableaux. Pour CSV, utilisez le module intégré ou la bibliothèque csv-parser. Pour Excel — xlsx (SheetJS).
Exemple : Lecture d'un CSV et création d'un rapport
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