SlideShare une entreprise Scribd logo
1  sur  19
Extraire des données
d’une page web avec R
François Guillem
Fondateur et data scientist @
Le Web est la plus grande base de
données du monde :
— mille milliards de pages !
— plusieurs millions de teraoctets !
Ce que vous voyez :
Ce que voit votre ordinateur :
Comment récupérer les données dans
tout ce bazar ?
Si les données sont dans un tableau
• readHTMLtable du package XML
library(XML)
url <- "http://www.jeuxvideo.com/articles/listes/tests-wiiu-type-0-note-0-tri-0-0.htm"
tables <- readHTMLTable(url)
# la fonction renvoie une liste contenant tous les tableaux
# de la page y compris des tableaux invisibles.
# Il est bon de vérifier leur taille afin d'identifier
# celui qui vous intéresse
lapply(tables, dim)
tables[[3]]
Et sinon ?
• Utiliser le package CSS (dont je suis l’auteur !)
install.packages("CSS")
library(CSS)
url <- "http://www.jeuxvideo.com/articles/listes/tests-wiiu-type-0-note-0-tri-0-0.htm"
doc <- htmlParse(url)
# Récupérer les url des tests
urlGames <- cssApply(doc, "td > p > a", cssLink)
Explications
• doc : document html créé avec « htmlParse »
• path : où se trouvent les données à extraire
dans le document ? (sélecteur CSS)
• fun : fonction pour extraire les données :
cssCharacter, cssNumeric, cssLink
cssApply(doc, path, fun, ...)
Qu’est-ce qu’un document html ?
<html>
<head>
<title>Titre de la page</title>
</head>
<body>
<div>
<h1>Section 1</h1>
<p>texte</p>
</div>
<div>
<h1>Section 2</h1>
<p>texte</p>
</div>
</body>
</html>
html
head
body
div
div
Titre de la pagetitle
Section 1h1
textep
Section 2h1
textep
Les attributs
• Chaque élément a un nom qui indique sa
fonction (html, head, body, div, etc.)
• Les attributs contiennent des infos
additionnelles :
<div attr1="valeur1" attr2="valeur2">
Les principaux attributs
• « id » : nom unique qui identifie l’élément
• « class » : utile pour savoir ce que contient
un élément
<div id="leftColumn">
<div class="article">
<div id="header">
<span class="note bignum">
Les sélecteurs CSS
• el : éléments de type « el »
• el1 el2 : éléments « el2 » contenus dans des
« el1 »
• el1>el2 : éléments « el2 » directement
contenus dans des « el1 »
Les sélecteurs CSS
• el.class : éléments « el » de classe « class »
• el.class1.class2 : éléments « el » de classes
« class1 » et « class2 »
• el#id : élément « el » ayant l’id « id »
Les sélecteurs CSS
• * : n’importe quel élément
• .class : n’importe quel élement de classe
« class »
• #id : n’importe quel élément ayant l’id « id »
Les sélecteurs CSS
• *[attr] : éléments possédant l’attribut « attr »
• *[attr='value'] : éléments dont l’attribut « attr »
est égal à « value »
Exemples
• "td > p > a"
« a » directement contenus par des « p » qui
sont directement contenus par des « td »
• "#avis_auteur li.note > strong"
« strong » directement contenus dans des « li »
de classe « note » contenus dans l’élément
ayant l’ID « avis_auteur »
Comment trouver le bon chemin ?
• Dans Chrome, clic droit sur la donnée, puis
« procéder à l’inspection de l’élément »
• Un cadre s’ouvre et tout en bas du cadre se
trouve le chemin complet vers l’élément qui
contient la donnée
• Essayer de ne garder que les éléments utiles
de ce chemin
Et maintenant démonstration !
Comment récupérer les notes de tous
les jeux de Wii U ?

Contenu connexe

En vedette

exposé de E- commerce
exposé de E- commerceexposé de E- commerce
exposé de E- commerceAndery Ivan
 
12 KPIs que tout webmarketer devrait avoir sur son tableau de bord
12 KPIs que tout webmarketer devrait avoir sur son tableau de bord12 KPIs que tout webmarketer devrait avoir sur son tableau de bord
12 KPIs que tout webmarketer devrait avoir sur son tableau de bordMatthieu Tran-Van
 
La Stratégie d'acquisition d'audience
La Stratégie d'acquisition d'audienceLa Stratégie d'acquisition d'audience
La Stratégie d'acquisition d'audienceFractaleCorp
 
Simple tooth extraction technique
Simple tooth extraction techniqueSimple tooth extraction technique
Simple tooth extraction techniqueAmin Abusallamah
 
CASIS-Écriture – Programme d’intervention pour augmenter la motivation à écri...
CASIS-Écriture – Programme d’intervention pour augmenter la motivation à écri...CASIS-Écriture – Programme d’intervention pour augmenter la motivation à écri...
CASIS-Écriture – Programme d’intervention pour augmenter la motivation à écri...plgctreq
 
Sawadogo burkina
Sawadogo burkinaSawadogo burkina
Sawadogo burkinaPABE BENIN
 
Carta irulla definitiva
Carta  irulla definitivaCarta  irulla definitiva
Carta irulla definitivauamericas
 
Diapositivas de informatica
Diapositivas de informaticaDiapositivas de informatica
Diapositivas de informaticaDurle
 
Loi informatique et libertés
Loi informatique et libertésLoi informatique et libertés
Loi informatique et libertésGarnier7101
 
Conseil aux associations eu égard à la lutte contre le financement du terrorisme
Conseil aux associations eu égard à la lutte contre le financement du terrorismeConseil aux associations eu égard à la lutte contre le financement du terrorisme
Conseil aux associations eu égard à la lutte contre le financement du terrorismeGroupe SFC, cabinet d'expertise comptable
 
Yummy magazine N°18
Yummy magazine N°18Yummy magazine N°18
Yummy magazine N°18YummyMagazine
 

En vedette (20)

exposé de E- commerce
exposé de E- commerceexposé de E- commerce
exposé de E- commerce
 
12 KPIs que tout webmarketer devrait avoir sur son tableau de bord
12 KPIs que tout webmarketer devrait avoir sur son tableau de bord12 KPIs que tout webmarketer devrait avoir sur son tableau de bord
12 KPIs que tout webmarketer devrait avoir sur son tableau de bord
 
La Stratégie d'acquisition d'audience
La Stratégie d'acquisition d'audienceLa Stratégie d'acquisition d'audience
La Stratégie d'acquisition d'audience
 
Simple tooth extraction technique
Simple tooth extraction techniqueSimple tooth extraction technique
Simple tooth extraction technique
 
Literatura Española II
Literatura Española IILiteratura Española II
Literatura Española II
 
Gramática
GramáticaGramática
Gramática
 
CASIS-Écriture – Programme d’intervention pour augmenter la motivation à écri...
CASIS-Écriture – Programme d’intervention pour augmenter la motivation à écri...CASIS-Écriture – Programme d’intervention pour augmenter la motivation à écri...
CASIS-Écriture – Programme d’intervention pour augmenter la motivation à écri...
 
Simul logos
Simul logosSimul logos
Simul logos
 
L'univers
L'universL'univers
L'univers
 
Sawadogo burkina
Sawadogo burkinaSawadogo burkina
Sawadogo burkina
 
Carta irulla definitiva
Carta  irulla definitivaCarta  irulla definitiva
Carta irulla definitiva
 
Diapositivas de informatica
Diapositivas de informaticaDiapositivas de informatica
Diapositivas de informatica
 
Anesenasaxo rof senasa
Anesenasaxo rof senasaAnesenasaxo rof senasa
Anesenasaxo rof senasa
 
La BCE achève l'évaluation complète de neuf banques
La BCE achève l'évaluation complète de neuf banquesLa BCE achève l'évaluation complète de neuf banques
La BCE achève l'évaluation complète de neuf banques
 
Apva 5
Apva 5Apva 5
Apva 5
 
Loi informatique et libertés
Loi informatique et libertésLoi informatique et libertés
Loi informatique et libertés
 
Dossier de production 2
Dossier de production 2Dossier de production 2
Dossier de production 2
 
Conseil aux associations eu égard à la lutte contre le financement du terrorisme
Conseil aux associations eu égard à la lutte contre le financement du terrorismeConseil aux associations eu égard à la lutte contre le financement du terrorisme
Conseil aux associations eu égard à la lutte contre le financement du terrorisme
 
La ville de Lecce en Italie
La ville de Lecce en ItalieLa ville de Lecce en Italie
La ville de Lecce en Italie
 
Yummy magazine N°18
Yummy magazine N°18Yummy magazine N°18
Yummy magazine N°18
 

Similaire à Extraction données web

Intégration web MMI
Intégration web MMIIntégration web MMI
Intégration web MMIPierre VERT
 
Atelier : Développement rapide d&rsquo;une application basée surXWiki
Atelier : Développement rapide d&rsquo;une application basée surXWikiAtelier : Développement rapide d&rsquo;une application basée surXWiki
Atelier : Développement rapide d&rsquo;une application basée surXWikiKorteby Farouk
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - ElasticsearchDavid Pilato
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...Hamza SAID
 
technologie web - part2
technologie web - part2technologie web - part2
technologie web - part2Benoît Simard
 
L'API Collector dans tous ses états
L'API Collector dans tous ses étatsL'API Collector dans tous ses états
L'API Collector dans tous ses étatsJosé Paumard
 
Scrapez facilement et gratuitement
Scrapez facilement et gratuitementScrapez facilement et gratuitement
Scrapez facilement et gratuitementMadeline Pinthon
 
Moteurs de recherche : un oeil sous le capot avec Elastic Search
Moteurs de recherche : un oeil sous le capot avec Elastic SearchMoteurs de recherche : un oeil sous le capot avec Elastic Search
Moteurs de recherche : un oeil sous le capot avec Elastic SearchAudrey Neveu
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab ElasticsearchDavid Pilato
 

Similaire à Extraction données web (20)

Une Introduction à R
Une Introduction à RUne Introduction à R
Une Introduction à R
 
Introduction à jQuery
Introduction à jQueryIntroduction à jQuery
Introduction à jQuery
 
Introduction au Jquery
Introduction au JqueryIntroduction au Jquery
Introduction au Jquery
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Cours_Java.pdf
Cours_Java.pdfCours_Java.pdf
Cours_Java.pdf
 
Intégration web MMI
Intégration web MMIIntégration web MMI
Intégration web MMI
 
Atelier : Développement rapide d&rsquo;une application basée surXWiki
Atelier : Développement rapide d&rsquo;une application basée surXWikiAtelier : Développement rapide d&rsquo;une application basée surXWiki
Atelier : Développement rapide d&rsquo;une application basée surXWiki
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - Elasticsearch
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...
 
Formation Jquery
Formation JqueryFormation Jquery
Formation Jquery
 
technologie web - part2
technologie web - part2technologie web - part2
technologie web - part2
 
HTML
HTMLHTML
HTML
 
L'API Collector dans tous ses états
L'API Collector dans tous ses étatsL'API Collector dans tous ses états
L'API Collector dans tous ses états
 
Scrapez facilement et gratuitement
Scrapez facilement et gratuitementScrapez facilement et gratuitement
Scrapez facilement et gratuitement
 
CSS3
CSS3CSS3
CSS3
 
Moteurs de recherche : un oeil sous le capot avec Elastic Search
Moteurs de recherche : un oeil sous le capot avec Elastic SearchMoteurs de recherche : un oeil sous le capot avec Elastic Search
Moteurs de recherche : un oeil sous le capot avec Elastic Search
 
HTML5
HTML5HTML5
HTML5
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 

Plus de parisraddicts

Campagne presidentielle
Campagne presidentielleCampagne presidentielle
Campagne presidentielleparisraddicts
 
Introduction au package "plyr"
Introduction au package "plyr"Introduction au package "plyr"
Introduction au package "plyr"parisraddicts
 
Cartographie politique avec R
Cartographie politique avec RCartographie politique avec R
Cartographie politique avec Rparisraddicts
 
Outils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur ROutils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur Rparisraddicts
 
Cartographie interactive avec R
Cartographie interactive avec RCartographie interactive avec R
Cartographie interactive avec Rparisraddicts
 
Les meetups dédiés à R dans le monde
Les meetups dédiés à R dans le mondeLes meetups dédiés à R dans le monde
Les meetups dédiés à R dans le mondeparisraddicts
 
Graphiques interactifs avec R
Graphiques interactifs avec RGraphiques interactifs avec R
Graphiques interactifs avec Rparisraddicts
 
Meetup 5 - Le package manipulate
Meetup 5 - Le package manipulateMeetup 5 - Le package manipulate
Meetup 5 - Le package manipulateparisraddicts
 
Introduction à Rmpi
Introduction à RmpiIntroduction à Rmpi
Introduction à Rmpiparisraddicts
 

Plus de parisraddicts (10)

Campagne presidentielle
Campagne presidentielleCampagne presidentielle
Campagne presidentielle
 
Introduction au package "plyr"
Introduction au package "plyr"Introduction au package "plyr"
Introduction au package "plyr"
 
Cartographie politique avec R
Cartographie politique avec RCartographie politique avec R
Cartographie politique avec R
 
Outils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur ROutils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur R
 
CaRtogRaphie avec R
CaRtogRaphie avec RCaRtogRaphie avec R
CaRtogRaphie avec R
 
Cartographie interactive avec R
Cartographie interactive avec RCartographie interactive avec R
Cartographie interactive avec R
 
Les meetups dédiés à R dans le monde
Les meetups dédiés à R dans le mondeLes meetups dédiés à R dans le monde
Les meetups dédiés à R dans le monde
 
Graphiques interactifs avec R
Graphiques interactifs avec RGraphiques interactifs avec R
Graphiques interactifs avec R
 
Meetup 5 - Le package manipulate
Meetup 5 - Le package manipulateMeetup 5 - Le package manipulate
Meetup 5 - Le package manipulate
 
Introduction à Rmpi
Introduction à RmpiIntroduction à Rmpi
Introduction à Rmpi
 

Dernier

La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 

Dernier (10)

La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 

Extraction données web

  • 1. Extraire des données d’une page web avec R François Guillem Fondateur et data scientist @
  • 2. Le Web est la plus grande base de données du monde : — mille milliards de pages ! — plusieurs millions de teraoctets !
  • 3. Ce que vous voyez :
  • 4. Ce que voit votre ordinateur :
  • 5. Comment récupérer les données dans tout ce bazar ?
  • 6. Si les données sont dans un tableau • readHTMLtable du package XML library(XML) url <- "http://www.jeuxvideo.com/articles/listes/tests-wiiu-type-0-note-0-tri-0-0.htm" tables <- readHTMLTable(url) # la fonction renvoie une liste contenant tous les tableaux # de la page y compris des tableaux invisibles. # Il est bon de vérifier leur taille afin d'identifier # celui qui vous intéresse lapply(tables, dim) tables[[3]]
  • 7. Et sinon ? • Utiliser le package CSS (dont je suis l’auteur !) install.packages("CSS") library(CSS) url <- "http://www.jeuxvideo.com/articles/listes/tests-wiiu-type-0-note-0-tri-0-0.htm" doc <- htmlParse(url) # Récupérer les url des tests urlGames <- cssApply(doc, "td > p > a", cssLink)
  • 8. Explications • doc : document html créé avec « htmlParse » • path : où se trouvent les données à extraire dans le document ? (sélecteur CSS) • fun : fonction pour extraire les données : cssCharacter, cssNumeric, cssLink cssApply(doc, path, fun, ...)
  • 9. Qu’est-ce qu’un document html ? <html> <head> <title>Titre de la page</title> </head> <body> <div> <h1>Section 1</h1> <p>texte</p> </div> <div> <h1>Section 2</h1> <p>texte</p> </div> </body> </html> html head body div div Titre de la pagetitle Section 1h1 textep Section 2h1 textep
  • 10. Les attributs • Chaque élément a un nom qui indique sa fonction (html, head, body, div, etc.) • Les attributs contiennent des infos additionnelles : <div attr1="valeur1" attr2="valeur2">
  • 11. Les principaux attributs • « id » : nom unique qui identifie l’élément • « class » : utile pour savoir ce que contient un élément <div id="leftColumn"> <div class="article"> <div id="header"> <span class="note bignum">
  • 12. Les sélecteurs CSS • el : éléments de type « el » • el1 el2 : éléments « el2 » contenus dans des « el1 » • el1>el2 : éléments « el2 » directement contenus dans des « el1 »
  • 13. Les sélecteurs CSS • el.class : éléments « el » de classe « class » • el.class1.class2 : éléments « el » de classes « class1 » et « class2 » • el#id : élément « el » ayant l’id « id »
  • 14. Les sélecteurs CSS • * : n’importe quel élément • .class : n’importe quel élement de classe « class » • #id : n’importe quel élément ayant l’id « id »
  • 15. Les sélecteurs CSS • *[attr] : éléments possédant l’attribut « attr » • *[attr='value'] : éléments dont l’attribut « attr » est égal à « value »
  • 16. Exemples • "td > p > a" « a » directement contenus par des « p » qui sont directement contenus par des « td » • "#avis_auteur li.note > strong" « strong » directement contenus dans des « li » de classe « note » contenus dans l’élément ayant l’ID « avis_auteur »
  • 17. Comment trouver le bon chemin ? • Dans Chrome, clic droit sur la donnée, puis « procéder à l’inspection de l’élément » • Un cadre s’ouvre et tout en bas du cadre se trouve le chemin complet vers l’élément qui contient la donnée • Essayer de ne garder que les éléments utiles de ce chemin
  • 18.
  • 19. Et maintenant démonstration ! Comment récupérer les notes de tous les jeux de Wii U ?