Introduction à XPATH

Extraction de données Web en R

Timo Grossenbacher

Instructor

XML Path Language

  • Un chemin dans un arbre HTML se formule, p. ex. //div/p[@class = "blue"] (équivaut à div > p.blue)
  • Sélectionner des nœuds selon les propriétés d'autres nœuds
  • Sélections plus avancées et personnalisées possibles
  • Exemple : choisir des éléments selon les propriétés de leurs enfants, p. ex. seulement les div qui contiennent des nœuds a avec la classe special
Extraction de données Web en R

Un arbre HTML simple où tous les éléments p sont sélectionnés

html %>%
    html_elements(xpath = '//p')
# CSS selector equivalent: p
html %>%
    html_elements(xpath = '//body//p')
# CSS selector equivalent: body p
html %>%
    html_elements(xpath = '/html/body//p')
# CSS selector equivalent: html > body p
Extraction de données Web en R

Un arbre HTML simple où seuls les éléments p sous des div sont sélectionnés

html %>%
    html_elements(xpath = '//div/p')
# CSS selector equivalent: div > p
Extraction de données Web en R

Un arbre HTML simple où seuls les div ayant un enfant a sont sélectionnés

html %>%
    html_elements(xpath = '//div[a]')
# CSS selector equivalent: none
Extraction de données Web en R

Syntaxe : axes, étapes et prédicats

  • Axes : / ou //
  • Étapes : types HTML comme span et a
  • Prédicats : [...]
  • Exemple : //span/a[@class = "external"] (CSS : span > a.external)
  • Exemple : //*[@id = "special"]//div (CSS : #special div ou *#special div)
Extraction de données Web en R

Passons à la pratique !

Extraction de données Web en R

Preparing Video For Download...