XPATH 入門

Rで学ぶWebスクレイピング

Timo Grossenbacher

Instructor

XML Path Language

  • HTML ツリー上のパスを記述(例: //div/p[@class = "blue"]div > p.blue と同等)
  • 他ノードの属性に基づきノードを選択
  • さらに高度で柔軟な選択が可能
  • 例: 子要素の属性で選ぶ。aspecial クラスを含む div だけを選択
Rで学ぶWebスクレイピング

すべての p 要素が選択されたシンプルな HTML ツリー

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で学ぶWebスクレイピング

div の下の p 要素のみが選択されたシンプルな HTML ツリー

html %>%
    html_elements(xpath = '//div/p')
# CSS selector equivalent: div > p
Rで学ぶWebスクレイピング

子に a を持つ div のみが選択されたシンプルな HTML ツリー

html %>%
    html_elements(xpath = '//div[a]')
# CSS selector equivalent: none
Rで学ぶWebスクレイピング

構文: 軸・ステップ・述語

  • 軸: / または //
  • ステップ: spana などの HTML 型
  • 述語: [...]
  • 例: //span/a[@class = "external"](CSS: span > a.external
  • 例: //*[@id = "special"]//div(CSS: #special div または *#special div
Rで学ぶWebスクレイピング

練習しましょう!

Rで学ぶWebスクレイピング

Preparing Video For Download...