XPATH 简介

R 语言网页抓取

Timo Grossenbacher

Instructor

XML 路径语言

  • 以 HTML 树路径表示,如 //div/p[@class = "blue"](等同于 div > p.blue
  • 可基于其他节点属性选择节点
  • 支持更高级和自定义的选择
  • 例如:按子节点属性选择元素,如仅选含有 specialadiv
R 语言网页抓取

一个简单的 HTML 树,选中所有 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
R 语言网页抓取

一个简单的 HTML 树,仅选中 div 下的 p 元素

html %>%
    html_elements(xpath = '//div/p')
# CSS selector equivalent: div > p
R 语言网页抓取

一个简单的 HTML 树,仅选中含有 a 子节点的 div

html %>%
    html_elements(xpath = '//div[a]')
# CSS selector equivalent: none
R 语言网页抓取

语法:轴、步、谓词

  • 轴:///
  • 步:HTML 类型,如 spana
  • 谓词:[...]
  • 例://span/a[@class = "external"](CSS:span > a.external
  • 例://*[@id = "special"]//div(CSS:#special div*#special div
R 语言网页抓取

让我们来练习!

R 语言网页抓取

Preparing Video For Download...