« Web scraping » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 3 : Ligne 3 :
==Définition==
==Définition==
Le '''web scraping''' consiste à extraire des informations dans une page web afin de réutiliser les données dans un autre cadre et/ou sous une autre forme par rapport au contenu original. Le web scraping est souvent associé à l'indexation des pages web par les moteurs de recherche, qui est connu sous le nom de '''web crawling'''. Le web scraping se différencie cependant du web crawling pour ses finalités liées au '''data-mining''' : l'intérêt du web scraping consiste à transformer des données non-structurées disponibles dans le web afin d'obtenir des données qui peuvent être traitées successivement, par exemple à travers des analyses (qualitatives et/ou quantitatives).
Le '''web scraping''' consiste à extraire des informations dans une page web afin de réutiliser les données dans un autre cadre et/ou sous une autre forme par rapport au contenu original. Le web scraping est souvent associé à l'indexation des pages web par les moteurs de recherche, qui est connu sous le nom de '''web crawling'''. Le web scraping se différencie cependant du web crawling pour ses finalités liées au '''data-mining''' : l'intérêt du web scraping consiste à transformer des données non-structurées disponibles dans le web afin d'obtenir des données qui peuvent être traitées successivement, par exemple à travers des analyses (qualitatives et/ou quantitatives).
==Cadre d'utilisation==
Le web scraping est utilisé dans différents activités telles que :
* Utilisation privée : par exemple dans le cas de services online qui permettent d'agréger des éléments provenant de différents sites (e.g. Netvibes)
* Recherche académique : le web est une ressource de données qui concernent plusieurs domaines et le grand nombre de données disponibles permettent, parfois, de combler les biais méthodologiques liées aux informations disponibles dans le web (véridicité, authenticité, etc.)
* Utilisation commerciale : comparaison entre informations disponibles entre sites concurrents  (e.g. billets d'avion de différentes compagnie pour le même trajet)
* Analyse marketing : les "traces" laisées sur internet sont de plus en plus nombreuses et permettent de fournir une idée de nos préférences, habitudes, etc. - ces données peuvent très bien être exploitées pour des analyse de marketing (dans le cadre notamment de la publicité online)
===Modalités d'extraction===
On peut faire une distinction de base concernant le web scraping selon la modalité d'extraction des données :
* '''Extraction manuelle''' : une personne navigue le web pour extraire informations pertinentes aux intérêts depuis les pages qu'elle visite. La pratique la plus commune pour ce type d'extraction et le simple copier/coller.
* '''Extraction sémi-automatique''' : une personne utilise un logiciel ou une application web pour aspirer/nettoyer les éléments d'une ou plusieurs pages web pertinents aux intérêts.
* '''Extraction automatique''' : l'extraction se fait de manière totalement automatique grâce à l'émulation, par une machine, d'une navigateur web qui visite des pages et qui est capable de suivre les différents liens afin de générer automatiquement un corpus de pages liées entre elles.
Dans les cas d'extraction automatique ou sémi-automatique on peut distinguer ultérieurement par rapport au traitement des données recueilles :
* '''Aucun traitement''' : les données recueillies ne sont pas traitées et sont tout simplement rendues disponibles - par exemple à travers un fichier de texte ou un spreadsheet - pour une analyse successive, à travers notamment un autre logiciel spécialisé (e.g. analyse de texte)
* '''Visualisation des données brutes''' : les données ne sont pas traitées mais seulement organisées selon des critères et les résultats sont affichés à l'aide de représentations graphiques similaires au format original (e.g. news feed, mash-up)
* '''Traitement des données''' : les données sont traitées à travers des algorithmes qui déterminent un certain résultat sur la base des analyses (e.g. comparaison de prix entre marchants online)
* '''Traitement des données et visualisation''' : les données sont traitées et, en plus, une représentation graphique adéquate à l'analyse des données et également fournie (e.g. nuages de mots-clés, cartes conceptuelles)
===Techniques d'extraction===
Dans le cadre d'extractions automatiques ou sémi-automatique il est nécessaire d'identifier dans les documents analysés les données d'intérêt afin de le séparer de l'ensemble du contenu. Voici une liste non exhaustive de techniques qui peuvent être utilisées :
* Expressions régulières
* XPath
* Traverser le DOM
====Expressions régulières====
Les [[Expression régulière|expressions régulières]] sont une fonctionnalité disponible pratiquement dans tout langage de programmation et qui permet d'identifier des patterns à l'intérieur de contenu textuel. Grâce à un syntaxe qui permet de combiner plusieurs règles d'analyse en même temps, il est possible d'extraire de manière ponctuelle des éléments qui correspondent aux critères définit dans l'expression régulière. Le mécanisme consiste à rechercher toutes les ressemblances entre la chaîne des caractères à trouver (le pattern) à l'intérieur du contenu cible de l'analyse. Les expressions régulières sont une techniques très puissante d'extraction de contenu car elles s'appliquent indépendamment de la structure du document analysé. Cette puissance nécessite cependant d'une syntaxe assez complexe qui n'est pas très intuitive.
====XPath====
[[Tutoriel XPath|XPath]] est un standard du W3C (l'organisme qui s'occupe des standards du Web) pour trouver des éléments dans un document XML. Ce langage exploite la structure hiérarchique des nœuds (et attributs) d'un document XML et nécessite par conséquent d'une structure du document très précise, ce qui n'est pas forcément le cas dans le pages HTML (voir plus bas dans la section HTML et web scraping).
====Traverser le DOM====
Cette technique est similaire à XPath car elle exploite également la structure hiérarchique d'une page web à travers le DOM (Document Object Model). Il s'agit encore une fois d'un standard W3C qui permet d'accéder au contenu des différents balises d'une page HTML grâce à leur positionnement hiérarchique dans la page. Pour accéder au contenu d'intérêt on peut utiliser par exemple la notation des [[CSS]] (feuilles de style).

Version du 31 octobre 2014 à 16:20

Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.

Définition

Le web scraping consiste à extraire des informations dans une page web afin de réutiliser les données dans un autre cadre et/ou sous une autre forme par rapport au contenu original. Le web scraping est souvent associé à l'indexation des pages web par les moteurs de recherche, qui est connu sous le nom de web crawling. Le web scraping se différencie cependant du web crawling pour ses finalités liées au data-mining : l'intérêt du web scraping consiste à transformer des données non-structurées disponibles dans le web afin d'obtenir des données qui peuvent être traitées successivement, par exemple à travers des analyses (qualitatives et/ou quantitatives).

Cadre d'utilisation

Le web scraping est utilisé dans différents activités telles que :

  • Utilisation privée : par exemple dans le cas de services online qui permettent d'agréger des éléments provenant de différents sites (e.g. Netvibes)
  • Recherche académique : le web est une ressource de données qui concernent plusieurs domaines et le grand nombre de données disponibles permettent, parfois, de combler les biais méthodologiques liées aux informations disponibles dans le web (véridicité, authenticité, etc.)
  • Utilisation commerciale : comparaison entre informations disponibles entre sites concurrents (e.g. billets d'avion de différentes compagnie pour le même trajet)
  • Analyse marketing : les "traces" laisées sur internet sont de plus en plus nombreuses et permettent de fournir une idée de nos préférences, habitudes, etc. - ces données peuvent très bien être exploitées pour des analyse de marketing (dans le cadre notamment de la publicité online)

Modalités d'extraction

On peut faire une distinction de base concernant le web scraping selon la modalité d'extraction des données :

  • Extraction manuelle : une personne navigue le web pour extraire informations pertinentes aux intérêts depuis les pages qu'elle visite. La pratique la plus commune pour ce type d'extraction et le simple copier/coller.
  • Extraction sémi-automatique : une personne utilise un logiciel ou une application web pour aspirer/nettoyer les éléments d'une ou plusieurs pages web pertinents aux intérêts.
  • Extraction automatique : l'extraction se fait de manière totalement automatique grâce à l'émulation, par une machine, d'une navigateur web qui visite des pages et qui est capable de suivre les différents liens afin de générer automatiquement un corpus de pages liées entre elles.

Dans les cas d'extraction automatique ou sémi-automatique on peut distinguer ultérieurement par rapport au traitement des données recueilles :

  • Aucun traitement : les données recueillies ne sont pas traitées et sont tout simplement rendues disponibles - par exemple à travers un fichier de texte ou un spreadsheet - pour une analyse successive, à travers notamment un autre logiciel spécialisé (e.g. analyse de texte)
  • Visualisation des données brutes : les données ne sont pas traitées mais seulement organisées selon des critères et les résultats sont affichés à l'aide de représentations graphiques similaires au format original (e.g. news feed, mash-up)
  • Traitement des données : les données sont traitées à travers des algorithmes qui déterminent un certain résultat sur la base des analyses (e.g. comparaison de prix entre marchants online)
  • Traitement des données et visualisation : les données sont traitées et, en plus, une représentation graphique adéquate à l'analyse des données et également fournie (e.g. nuages de mots-clés, cartes conceptuelles)

Techniques d'extraction

Dans le cadre d'extractions automatiques ou sémi-automatique il est nécessaire d'identifier dans les documents analysés les données d'intérêt afin de le séparer de l'ensemble du contenu. Voici une liste non exhaustive de techniques qui peuvent être utilisées :

  • Expressions régulières
  • XPath
  • Traverser le DOM

Expressions régulières

Les expressions régulières sont une fonctionnalité disponible pratiquement dans tout langage de programmation et qui permet d'identifier des patterns à l'intérieur de contenu textuel. Grâce à un syntaxe qui permet de combiner plusieurs règles d'analyse en même temps, il est possible d'extraire de manière ponctuelle des éléments qui correspondent aux critères définit dans l'expression régulière. Le mécanisme consiste à rechercher toutes les ressemblances entre la chaîne des caractères à trouver (le pattern) à l'intérieur du contenu cible de l'analyse. Les expressions régulières sont une techniques très puissante d'extraction de contenu car elles s'appliquent indépendamment de la structure du document analysé. Cette puissance nécessite cependant d'une syntaxe assez complexe qui n'est pas très intuitive.

XPath

XPath est un standard du W3C (l'organisme qui s'occupe des standards du Web) pour trouver des éléments dans un document XML. Ce langage exploite la structure hiérarchique des nœuds (et attributs) d'un document XML et nécessite par conséquent d'une structure du document très précise, ce qui n'est pas forcément le cas dans le pages HTML (voir plus bas dans la section HTML et web scraping).

Traverser le DOM

Cette technique est similaire à XPath car elle exploite également la structure hiérarchique d'une page web à travers le DOM (Document Object Model). Il s'agit encore une fois d'un standard W3C qui permet d'accéder au contenu des différents balises d'une page HTML grâce à leur positionnement hiérarchique dans la page. Pour accéder au contenu d'intérêt on peut utiliser par exemple la notation des CSS (feuilles de style).