Le WebScraping, selon Wikipédia, c’est l’art de collecter automatiquement des informations sur Internet. Chez Press’ Innov, ce sujet nous passionne depuis longtemps, et nous travaillons activement à trouver une solution encore plus performante que tout ce qui existe déjà sur le marché.

Aujourd’hui, on revient justement sur les différentes familles de solutions qui existent. Les techniques de scraping sont aussi variées que les pages web sont nombreuses et pour trouver la meilleure combinaison de traitement, il faut étudier en détail l’état de l’art.

Scraper par mimétisme

Cette famille de scraper fonctionne grâce à des règles personnalisées. On lui apprend où se situe les informations recherchées sur une page web, et il répète la mécanique d’extraction apprise sur les pages suivantes.

Cette mécanique s’appuie sur des sélecteurs DOM qui sont déduits de l’apprentissage par clic. Cette stratégie de scraping est relativement efficace pour sa précision mais peu adaptée lorsque l’on doit traiter un nombre important de sites hétérogènes. De plus, si le site source modifie sa maquette graphique (et donc l’architecture DOM de sa page) il faut réapprendre au moteur comment retrouver les informations cherchées.

import.ioKimonoMozenda

Scraper par mesure de poids

Cette famille s’appuie sur un algorithme générique qui analyse l’arbre DOM d’une page web et mesure le poids en mots de chaque branche. Par déduction, l’algorithme choisit un nœud comme point de départ du texte principal et extrait alors le texte de tous les nœuds enfants.

Cette mécanique a pour avantage de ne nécessiter aucun apprentissage et de s’adapter aux changements des maquettes graphiques des sites sources. Toutefois, les résultats sont en général assez bruyants (des portions de texte non attendus sont récupérés). De plus, cet algorithme suppose que la page source respecte un standard (assez répandu) qui consiste à concentrer le corps d’une page dans une branche unique. Or, de plus en plus, les maquettes des sites Internet testent de nouvelles mises en page, moins structurées, qui ne respectent pas cette logique hiérarchique (c’est notamment le cas de beaucoup de sites d’infos qui entrecoupent le texte avec des images pleine largeur par exemple).

Il est à noter que pour limiter le bruit produit par cet algorithme, plusieurs implémentations ajoutent des heuristiques standards pour effacer les scories. Par exemple, les blocs ayant pour attributs commentaires ou comments sont ignorés du calcul (évitant ainsi de peser dans le poids d’une branche).

BoilerpipeReadabilityGoose

Scraping par différentiel

Cette mécanique repose sur le fait que deux pages issues du même site auront pour seule différence le contenu du corps de page. Selon cette logique, les barres de menu, les colonnes de droite ou gauche et les pieds de page sont censés être parfaitement identiques entre deux pages du même site.

La mécanique consiste alors à appliquer un algorithme de masquage qui superpose les deux pages en n’en retirant que les différences.

Le principal défaut de cette manière de faire est que les sites web ne proposent que très rarement des pages identiques. Si la structure des pages est effectivement identique, le contenu présent dans les colonnes de droite notamment varie souvent. L’exemple le plus explicite sont les blocs Sur le même sujet, souvent présentés en colonne de droite et qui adaptent leur contenu en fonction de l’article en cours de lecture. Ainsi, toutes les pages du site présentent bien un bloc Sur le même sujet mais le contenu de ce bloc n’est jamais le même. Autre piège de référence pour cet algorithme: les commentaires utilisateurs.

diff-scraper

Scraper par machine learning

Cette mécanique est celle qui revêt le plus de formes différentes selon les implémentations. Le principe général consiste à entraîner un algorithme sur un échantillon important de pages web analysées manuellement. En général, le machine learning s’appuie sur des indicateurs géographiques des blocs de texte dans la page: on mesure statistiquement se trouve le bloc de texte principal par rapport aux autres blocs de textes. La machine est alors capable d’elle même de déduire en général où se trouve le texte. Plus l’échantillonnage est important, plus la précision de l’algorithme est bonne.

Pour parfaire la mécanique, certaines implémentations ajoutent des indicateurs supplémentaires au modèle de données: nom des blocs, densité de liens, densité d’images, … D’autres implémentations ajoutent même de l’analyse syntaxique: comparer le titre de la page avec le contenu textuel de chaque bloc (pour retrouver le bloc qui mentionne les mots clés du titre).

DiffBotAlchemyAPIEmbed.ly

Ce rapide tour d’horizon en 2015 montre à quel point les techniques de Webscraping sont variées. Toutes ont des avantages et des inconvénients, mais en l’état, aucune ne garantie 100% de réussite. Pourtant, chez Press’ Innov, on a l’intime conviction que c’est possible…

Vous, vous feriez comment?

 

 

Mots clés

Découvrez nos préstations en régie ou au forfait

Audit, conseil, AMOA, AMOE, bases de données XML, solutions éditoriales, sites Responsive Web Design, ...

Nous consulter !
Découvrir !

Archives

Étiquettes

Mots clés