Introduzione a XPATH

Web scraping in R

Timo Grossenbacher

Instructor

XML Path Language

  • Un percorso nell'albero HTML, es.: //div/p[@class = "blue"] (equivalente a div > p.blue)
  • Seleziona nodi in base a proprietà di altri nodi
  • Possibili selezioni più avanzate e personalizzate
  • Esempio: seleziona elementi in base alle proprietà dei figli, es. solo div che contengono a con classe special
Web scraping in R

Un semplice albero HTML in cui tutti gli elementi p sono selezionati

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
Web scraping in R

Un semplice albero HTML in cui sono selezionati solo i p sotto i div

html %>%
    html_elements(xpath = '//div/p')
# CSS selector equivalent: div > p
Web scraping in R

Un semplice albero HTML in cui sono selezionati solo i div con un figlio a

html %>%
    html_elements(xpath = '//div[a]')
# CSS selector equivalent: none
Web scraping in R

Sintassi: assi, passi e predicati

  • Assi: / o //
  • Passi: tipi HTML come span e a
  • Predicati: [...]
  • Esempio: //span/a[@class = "external"] (CSS: span > a.external)
  • Esempio: //*[@id = "special"]//div (CSS: #special div o *#special div)
Web scraping in R

Facciamo pratica!

Web scraping in R

Preparing Video For Download...