- Créez un nouvel utilisateur pour exécuter les scripts sans privilèges root. Remplacez monutilisateur par le nom d'utilisateur que vous souhaitez.
adduser monutilisateur
- Donnez à votre nouvel utilisateur l'accès sudo (facultatif, si nécessaire) :
usermod -aG sudo monutilisateur
- Changez d'utilisateur pour continuer avec l'utilisateur nouvellement créé :
su - monutilisateur
- Télécharger le dépôt en replaçant "18" par la version de nodejs que vous souhaitez. Les versions se trouve ici
cd ~
curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
- Installer le dépôt
sudo bash nodesource_setup.sh
- installer nodejs
sudo apt install nodejs
- Vérifier la version
node -v
- Installez les dépendances nécessaires pour Puppeteer sur Ubuntu :
sudo apt-get update
sudo apt-get install -y wget gnupg ca-certificates procps libxshmfence1 libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdbus-1-3 libxkbcommon0 libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 libcairo2 libasound2 libxcomposite1 libxcursor1 libxi6 libxtst6 libxss1 libxrandr2 libgtk-3-0
- Créez votre dossier de projet et naviguez dedans :
mkdir puppeteer && cd puppeteer
- Initialisez un nouveau projet Node.js :
npm init -y
- Installez Express et Puppeteer :
npm install express puppeteer
- Créez le fichier `server.js`` avec le code pour lancer le serveur Express et pour router les requêtes vers les scripts Puppeteer. (à télécharger à la racine et penser à bien changer le token)
nano server.js
- Créer un dossier scripts
mkdir scripts
- Lancez votre serveur Node.js avec :
cd ~
cd puppeteer
node server.js
Pour exécuter le script Puppeteer, vous devez taper ceci dans votre navigateur (remplacer mon-ip par votre adresse ip serveur) ou même depuis n8n. Vous n'avez pas besoin de token. C'est un moyen de tester vos scripts rapidement :
http://mon-ip:3000/script1.js
Depuis n8n, vous pouvez lancer votre script avec token ou sans token. Vous avez juste à utiliser le node HTTP Request et d'ajouter un header d'authentification
Pour ajouter des nouveaux script de scraping, il faut insérer dans le dossier scripts
un nouveau fichier (ex : NouveauScript.js)
Une fois que vous avez fini de créer et tester vos scripts, il faudra faire en sorte qu'à la fermeture du terminal, le node server.js soit toujours actif. Voici comment rendre le script persistant même après redémarrage du serveur
Si PM2 n'est pas déjà installé sur votre système, vous pouvez l'installer globalement via npm :
sudo npm install pm2 -g
Naviguez dans le répertoire de votre projet et utilisez la commande suivante pour démarrer votre script avec PM2 :
cd puppeteer
pm2 start server.js --name "nomDeVotreApplication"
Remplacez "nomDeVotreApplication" par le nom que vous souhaitez donner à votre processus. Cela peut être utile pour identifier le processus plus tard avec d'autres commandes PM2.
PM2 peut configurer votre application pour qu'elle redémarre automatiquement si votre serveur redémarre. Utilisez la commande suivante pour configurer cela :
pm2 startup
Et voilà, vous pouvez fermer votre terminal et même redémarrer votre serveur, le script sera toujours actif :)
Voici quelques commandes PM2 courantes pour gérer votre application :
- Lister toutes les applications :
pm2 list
- Arrêter une application :
pm2 stop nomDeVotreApplication
- Redémarrer une application :
pm2 restart nomDeVotreApplication
- Voir les logs :
pm2 logs nomDeVotreApplication