Introduktion till XPATH

Webbskrapning i R

Timo Grossenbacher

Instructor

XML Path Language

  • En sökväg genom ett HTML-träd formuleras, t.ex. //div/p[@class = "blue"] (motsvarar div > p.blue)
  • Välj noder baserat på egenskaper hos andra noder
  • Mer avancerade och anpassade urval är möjliga
  • Till exempel: Välj element baserat på egenskaper hos deras barn, t.ex. välj bara div-element som innehåller a-noder med klassen special
Webbskrapning i R

Ett enkelt HTML-träd där alla p-element är markerade

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
Webbskrapning i R

Ett enkelt HTML-träd där endast p-element under div-element är markerade

html %>%
    html_elements(xpath = '//div/p')
# CSS selector equivalent: div > p
Webbskrapning i R

Ett enkelt HTML-träd där endast div-element med a-barn är markerade

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

Syntax: axlar, steg och predikat

  • Axlar: / eller //
  • Steg: HTML-typer som span och a
  • Predikat: [...]
  • Exempel: //span/a[@class = "external"] (CSS: span > a.external)
  • Exempel: //*[@id = "special"]//div (CSS: #special div eller *#special div)
Webbskrapning i R

Nu kör vi en övning!

Webbskrapning i R

Preparing Video For Download...