Si vous suivez ce blog depuis plusieurs années, vous connaissez probablement déjà Node-Red, un logiciel Opensource développé par IBM qui permet d'automatiser des tùches sans faire de développement (Low Code).

đŸ•žïž Pourquoi crĂ©er un robot de Web Scraping ?

L'utilisation d'un robot de Web Scraping peut ĂȘtre utilisĂ© pour rĂ©pondre Ă  plusieurs besoins :

  • VĂ©rifier la disponibilitĂ© d'un produit sur un site de eCommerce (ex: PS5).
  • VĂ©rifier la disponibilitĂ© de date pour un rendez-vous.
  • VĂ©rifier la prĂ©sence d'une erreur sur un site (supervision).
  • VĂ©rifier la baisse du prix / rĂ©duction sur un produit.
  • VĂ©rifier la mise en ligne d'un nouveau site.
  • ... etc.

đŸ€– Comment crĂ©er un robot sur Node-Red ?

Pour créer un robot de Web Scrapping, 5 composants sont nécessaires dans la pipeline à construire :

  • Un composant de type "Inject" avec une rĂ©pĂ©tition programmĂ©e qui permettra de dĂ©clencher le traitement Ă  frĂ©quence constante : toutes les minutes, 2 minutes, 5 minutes ...
  • Un composant de type "HTTP Request" pour appeler la page ou la ressource sur le Web que vous voulez vĂ©rifier.
  • Un composant de type "Switch" pour vĂ©rifier le code HTTP (StatusCode) retournĂ© par la ressource.
  • Un composant de type "Switch" pour vĂ©rifier le contenu de la page Web ou de la ressource sur le Web.
  • Un composant de notification pour vous informer du changement de statut de la page Web : Envoi de SMS, Diffuser un message sur le Google Home, envoi d'un email ...

node-red-web-scrapping

đŸŸ„ Exemple de node flow pour Node-Red

Voici un export d'un pipeline de Web Scrapping que vous pouvez facilement importer dans Node-Red via la fonction "import" disponible dans le menu du logiciel.

[{"id":"d187902e.a2762","type":"inject","z":"36f091fb.d7594e","name":"Toutes les minutes","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":1300,"wires":[["b2c7d89.c3d7c28"]]},{"id":"b2c7d89.c3d7c28","type":"http request","z":"36f091fb.d7594e","name":"Appel au site Internet","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://www.perdu.com","tls":"","persist":false,"proxy":"","authType":"","x":300,"y":1360,"wires":[["bb2ea8a0.510d58"]]},{"id":"bb2ea8a0.510d58","type":"switch","z":"36f091fb.d7594e","name":"Check status code","property":"statusCode","propertyType":"msg","rules":[{"t":"eq","v":"200","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":450,"y":1300,"wires":[["b539bbbd.054858"],["5660d8bc.fe3158"]]},{"id":"b539bbbd.054858","type":"switch","z":"36f091fb.d7594e","name":"Check page content","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"perdu","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":680,"y":1240,"wires":[["80912129.701af"],["82d4ec32.8d223"]]},{"id":"82d4ec32.8d223","type":"debug","z":"36f091fb.d7594e","name":"Pas le contenu recherché","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":910,"y":1280,"wires":[]},{"id":"5660d8bc.fe3158","type":"debug","z":"36f091fb.d7594e","name":"Code HTTP en erreur","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":680,"y":1360,"wires":[]},{"id":"80912129.701af","type":"e-mail","z":"36f091fb.d7594e","server":"smtp.gmail.com","port":"465","secure":true,"tls":true,"name":"","dname":"","x":850,"y":1220,"wires":[]}]

Ce type de robot de Web Scrapping est à utiliser avec parcimonie bien sûr, il entrainera des coûts sur le serveur que vous appellerez si vous vérifiez un changement de contenu de maniÚre trop fréquente. Soyez vigilant dans son usage.

Quels sont les autres usages possibles avec Node-Red ?

J'utilise aujourd'hui Node-Red pour la domotisation de ma maison, voici un certain nombre d'articles que j'ai consacré sur le sujet :

N'hésitez pas à allez faire un tour dans la rubrique Domotique du blog si la domotique vous intéresse et à rejoindre le serveur Discord Geeek pour discuter Domotique !

Vous ĂȘtes correctement abonnĂ© Ă  Geeek
Bienvenue ! Vous ĂȘtes correctement connectĂ©.
Super ! Vous ĂȘtes correctement inscrit.
Votre lien a expiré
VĂ©rifiez vos emails et utiliser le lien magic pour vous connecter