(Scraping) - Collecte et MàJ données produits, quels outils ?

Bonjour à tous,

Je suis en pleine réflexion sur un projet sur lequel j’aurai besoin de récupérer massivement des données techniques issues de fabricants. La data est à dispo de tout le monde, mais il en va de soi qu’il est impossible de faire ce travail manuellement.

Les données peuvent être affichées en « brut » via la code et/ou via un fichier .pdf. L’objectif est également d’avoir des données constamment à jour dès une MàJ d’un fabricant.

Exemple d’une page à scrap : http://bit.ly/2sjCzd6

Connaissez-vous des outils qui peuvent répondre à cette demande ? Il y a beaucoup de solutions sur le marché et j’imagine également qu’un outil sur-mesure peut-être développé. L’objectif est également de remplir des champs qui seront prédéfinis sur l’outil avec, j’imagine, certaines règles fixées.

Merci par avance pour vos retours et bonnes fêtes ! :slight_smile:

Hello tu peux faire cela avec avec plusieurs tools mais zenno reste le plus accessible si ta besoin d’u. Service ou d’une template perso je Suis dispo bonne journée

Kev1 ça serait bien également de répondre aux messages. :wink:
En tous cas a celui que je t’ai adresse il y a plusieurs semaines…

Hello Renault je retrouve pas ton message si tu peux me rafraîchir en mp :expressionless:

Bonjour Morgan,

Est-ce que tu peux nous en dire plus quant à la volumétrie de pages dont il est question, ainsi qu’en ce qui concerne le nombre de sources uniques (sites web différents) pour lesquelles tu souhaites automatiser le processus d’extraction de données ?

Comme tu l’as mentionné il existe effectivement nombre de solutions déjà existantes sur le marché, qui permettent ou non d’être en full automatisation.

Par exemple il existe des extensions Chromes telles que Dataminer.io et Webscraper.io qui permettent en version gratuite de faire du « one shot », et lorsqu’on opte pour leurs versions payantes nous offrent des fonctionnalités de « Cloud Scraping » avec moins de limites concernant le nombre de pages qu’on va pouvoir crawler et scraper.

Si tu n’as qu’une poignée de sites fabricants à gérer certains outils seront plus adaptés, mais si tu dois en gérer plusieurs dizaines alors il est possible qu’il faille se tourner vers d’autres…

Exemple: récemment j’ai eu une demande d’un revendeur de carrelages italiens, il souhaitait intégrer à son site vitrine les références / fiches produits issues d’une centaine de fournisseurs différents. Il a donc fallu analyser et configurer un outil de scraping pour une centaines de sites, et faire le job au cas par cas, site par site.

Au début, pour 2-3 sites le faire avec Zennoposter semblait envisageable mais il s’est vite retrouvé limité. Je lui ai proposé une solution sur mesure, développée en full headless browser via du Node.js + Puppeteer + MongoDB, l’idée étant d’optimiser le code et le généraliser le plus possible vis à vis des spécificités des sites de carrelage, afin que lors de la prise en charge de tout nouveau site de fournisseur l’intégration soit exponentiellement plus rapide :slight_smile:

L’avantage d’une solution sur-mesure, « in-house », c’est que tu pourras même développer des scripts custom pour l’extraction de données de .PDF, via des librairies comme pdf2html.

Message envoyé …

Bonjour,

Il doit y en avoir environ 10K je pense sur une dizaine de sites différents.

J’ai effectivement testé les extensions Dataminer et Webscraper mais la donnée est « brut » sans travail derrière. L’objectif est le même que le revendeur de carrelages qui a fait appel à toi. Donc si je comprends bien, s’il veut MàJ ses données, il suffit de lancer un « run » ? Et j’imagine que les données sont transférées directement sur le ftp ?

L’extraction de données en .pdf peuvent effectivement venir compléter ou challenger les données présentes en brut dans le code.

Niveau timing : il faut compter combien de temps pour la mise en place d’un outil sur-mesure ?

Merci pour ton retour et ton aide :wink:

Bonne journée,
Morgan

Hello @tehmorgan,

En effet tu viens de pointer le problème majeur de toutes ces solutions type extension: en général elles ne se préoccupent que de la partie E(xtract) d’un ensemble plus vaste qu’on appel ETL (Extract Transform Load).

Une fois la donnée brute extraite, il faudrait pouvoir la transformer en lui appliquant divers règles de formatage et vérification.

Dataminer offre une possibilité de re-travail de la donnée brute, au sein de l’onglet n°6 « JS », mais pour s’en sortir ici il faut savoir coder en JavaScript:

Pour répondre à ta question, au niveau du processus de scraping pur (phase 1 « Extract »), il y a deux parties:

  • Le setup initial pour une extraction complète de l’existant, ou d’un sous ensemble de ce dernier, c’est l’extraction « one shot »
  • L’implémentation du système de MAJ, qui repose sur les bases de l’extraction initiale mais qui devra être en mesure de dédoublonner et d’identifier uniquement les nouveaux éléments (selon les critères qu’on aura définit), afin de n’extraire que le « delta » des données entre un instant T et T-1. On peut aussi envisager de re-passer sur les pages déjà traitées si on estime que des données peuvent être mises à jour au sein de pages qui existaient déjà.

Du coup, oui pour la phase d’extract initiale il suffira de lancer un « run » une fois que le robot sera mis en place. Mais pour la phase de MAJ, cela dépendra de si la structure du site a changé entre temps ou pas, et si oui il faudra remettre le robot à jour pour s’adapter aux changements observés.

Niveau timing, ça va vraiment dépendre des complexités ou facilités techniques rencontrées sur les sites ciblés. Cela peut prendre une demi-journée pour un site, comme deux jours, c’est assez variable.

Mais comme pour l’histoire des sites de carrelage, c’est toujours les premiers sites qui prennent le plus de temps, plus il y aura de sites, plus le robot sera modulable et généralisable et moins l’intégration de sites sera longue :slight_smile: (un peu comme si ça suivant la loi d’une courbe exponentielle inversée).

En espérant avoir pu t’aider un peu,
Belle journée !