Wprowadzenie do XPATH

Web Scraping w R

Timo Grossenbacher

Instructor

XML Path Language

  • Ścieżka przez drzewo HTML, np. //div/p[@class = "blue"] (odpowiednik: div > p.blue)
  • Wybieranie węzłów na podstawie właściwości innych węzłów
  • Możliwe bardziej zaawansowane i spersonalizowane selekcje
  • Przykład: wybieranie elementów na podstawie właściwości ich dzieci, np. tylko elementy div zawierające węzły a z klasą special
Web Scraping w R

Proste drzewo HTML, w którym zaznaczono wszystkie elementy p

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 w R

Proste drzewo HTML, w którym zaznaczono tylko elementy p poniżej divów

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

Proste drzewo HTML, w którym zaznaczono tylko divy z węzłami a jako dziećmi

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

Składnia: osie, kroki i predykaty

  • Osie: / lub //
  • Kroki: typy HTML, np. span i a
  • Predykaty: [...]
  • Przykład: //span/a[@class = "external"] (CSS: span > a.external)
  • Przykład: //*[@id = "special"]//div (CSS: #special div lub *#special div)
Web Scraping w R

Czas na ćwiczenia!

Web Scraping w R

Preparing Video For Download...