Mes outils de scraping et d’automation

Ce que j’appelle ici automation ce sont des taches exécutées et déclenchées de manière automatique. Une sorte de routine autonome. Seul le résultat sera visible par un humain. Le but final est d’avoir des scripts qui scrapent le contenu d’une page régulièrement, des robots Twitter, des notifications intelligentes…

Je découpe mes besoins en différentes fonctions :

  • déclencheur : vérification régulière, écoute d’un flux, attente d’une action sur Twitter, etc.
  • lecture et traitement : récupération des données, transformation, construction d’un flux RSS, etc.
  • sortie : notification, email, tweet, etc.

Depuis la fermeture de plusieurs services je me tourne de plus en plus vers des solutions que je développe pour la partie lecture/traitement. Ça implique d’héberger son code, c’est plus long mais c’est plus fiable et surtout parfaitement adapté à mon besoin. La phase déclencheur je la laisse à des services tiers (simplement parce que crontab n’est pas disponible sur un serveur mutualisé et est payant sur Heroku 😅). Pour ce qui est des sorties, ça dépend de la finalité que j’en ai (information, promotion, …).

Un exemple ?
L’achat d’une maison ou d’une voiture demande d’être très réactif sur les offres, j’ai donc créé un service qui me notifie dans les 10 minutes après que l’annonce est été postée.

RSS-bridge

Un outil de scraping clé en main à héberger. Son but est de créer un flux RSS ou une pseudo-API pour des services qui n’en proposent pas. Il s’utilise directement dans le navigateur. C’est un projet open-source.
Je m’en sers d’outil de lecture et traitement.

PHP Simple HTML Parser

L’outil ultime pour extraire du contenu d’une page web. Il est développé en PHP et est rapide à prendre en main. C’est assez puissant, il créé des objets pour chaque nœud du DOM, ce qui demande un peu de ressource pour les longues pages. Cet extracteur est une base pour un script à faire vous-même.
Compétences en développement requises. Je m’en sers comme script de traitement.

Integromat

À mi-chemin entre IFTTT et Yahoo Pipes, c’est un outil très puissant. Il est facile à prendre en main mais avec beaucoup de possibilités : on peut chaîner les services, il gère les taches régulières, le JSON et les call HTTP… Pas besoin de connaissance en développement, seulement un peu d’algo.
Je m’en sers comme déclencheur, traitement des données et en sortie.

IFTTT

Un outil en ligne qui offre la possibilité de connecter des services web entre eux. L’usage est assez simple et l’interface est claire. Le fonctionnement se base sur un principe input/output : brancher 2 services ensemble pour créer une applet. Ils ont un service Webhook qui permet d’écouter des requêtes http ou d’en émettre. Il y a aussi une app mobile pour des actions contextualisées.
Je m’en sers comme déclencheur et parfois en sortie.

Zapier

Un peu plus complet que IFTTT sur les options proposées, il se destine à un public plus technique. J’ai eu moins de problème de timeout que sur IFTTT mais il propose moins de services. Son gros point faible est qu’il y a des quotas d’utilisation.
Je m’en sers comme déclencheur et sortie.

Easycron

Un crontab configurable en ligne. Les options sont toutes pertinentes et simples à configurer. Ça demande un peu de curiosité aux novices mais si un cron est ce dont vous avez besoin alors c’est la solution la plus rapide. Les quotas sont assez faibles pour le plan gratuit mais pour du quotidien ça tient la route.
Je m’en sers comme déclencheur.

Pushbullet

Un centre de notification sur smartphone et PC. IFTTT et Zapier gèrent ce service. Possibilité de créer ses propres canaux basés sur des RSS (couplé à RSS-bridge c’est le top). Pour approfondir, leur API est complète et leur doc très claire. L’app permet aussi de faire du mirroring de notifications entre smartphone et PC.
Je m’en sers comme sortie et déclecheur.

Visualping

(anciennement changedetection.com)
Un service en ligne pour détecter un changement dans une page. Peu d’options mais ça dépanne et c’est rapide à mettre en place. On peut mettre ce genre de service sur une page qui va changer dans longtemps et ainsi ne pas avoir à la vérifier régulièrement. Sinon c’est un bon moyen de parser une page seulement quand elle change et non à heure fixe. La sortie de ce service est unique : un email.
Je m’en sers comme déclencheur.

Heroku

Mini-hébergement gratuit configurable et isolé. La mise en place est rapide et le https est déjà configuré.
La seule contrainte est que le serveur s’éteint automatiquement si il n’est pas sollicité et doit avoir 6h par jour de downtime. Nécessite des connaissances en développement et déploiement.
Je m’en sers comme déclencheur, traitement et sortie selon le besoin.

En test : Scrapy

Un outil en Python avec beaucoup de ressources pour scraper du contenu.

À tester : Ferret

Un framework en Go pour écrire facilement des scripts de scraping. Il supporte les sites dynamiques. Il est très prometteur avec sa syntaxe simplissime mais manque encore de quelques fonctionnalités.

À tester : Huginn

Un genre d’IFTTT avancé à héberger vous-même avec des outils de mesure et des réglages avancés. `A manipuler dans son navigaeur. Il à l’air très prometteur. C’est un projet open-source en Ruby.

À tester : node-red

Un outil pour manipuler des appareils et des services dans une interface graphique (qui ressemble à Yahoo Pipes) afin d’enchainer des actions. Manipulable dans son navigateur après l’avoir installé. C’est un projet open-source en Nodejs (on s’y attendait pas…).

À tester : Pipes

Un re-live de Yahoo Pipes qui offre de manipuler des données avec une interface de « programmation visuelle ». C’est un outil en ligne.

À tester : Apify

Un service en ligne qui promet beaucoup et qui semble correspondre à mes besoins mais je ne sais pas si les données sont exploitables vers des « sorties » personnalisées.

Yahoo Pipes Fermé

Principalement dédié à la gestion de flux RSS il peut s’adapter au scrapping. C’est un outil en ligne un peu compliqué à prendre en main mais puissant, l’utilisation d’une interface pour gérer les enchaînements d’actions sur les flux est utile pour les novices. Pas mal de modificateurs que l’on peut chainer pour arriver à ses fins dans la transformation des données recueillies.
Intègre son gestionnaire d’événements (auto déclenchement).

Kimonolabs Fermé

Outil pour scrapper à l’aide d’un éditeur visuel en ligne pour sélectionner précisément la donnée à récupérer. Il m’a été utile pour remplacer Yahoo Pipes pendant un temps. La manipulation des données est plus poussée avec une partie à coder soi-même. Il propose un traitement des données via du Javascript donc très facile à personnaliser. Bon équilibre entre code et GUI.
Intègre son gestionnaire d’événements (auto déclenchement).

Non testé : Elastic.io

Outil orienté sur l’acquisition de clients.

Non testé : Automate.io

Un outil plutôt dédié à l’acquisition de données clients

HTML Vous pouvez utiliser ces balises HTML : <a> <b> <i> <code> <cite>