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

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
Matthieu Tran-Van
 
Simple tooth extraction technique
Simple tooth extraction techniqueSimple tooth extraction technique
Simple tooth extraction technique
Amin 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
 
Carta irulla definitiva
Carta  irulla definitivaCarta  irulla definitiva
Carta irulla definitiva
uamericas
 
Loi informatique et libertés
Loi informatique et libertésLoi informatique et libertés
Loi informatique et libertés
Garnier7101
 

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

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

Introduction à Rmpi
Introduction à RmpiIntroduction à Rmpi
Introduction à Rmpi
parisraddicts
 

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

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 

Dernier (20)

Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 

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 ?