始める無料で始める

構造が悪いテーブルに対する html_table() の弱点

親要素の「直下の」テキストだけを選択したい場合があります。しかし次の例のテーブルでは、役名そのものが em タグで囲われています。さらに、その機能(例: "Voice")も、em 部分と同じ td 要素内に含まれており、データをクエリするには最適とはいえません。

HTML コードの抜粋は次のとおりです。

<table>
 <tr>
  <th>Actor</th>
  <th>Role</th>
 </tr>
 <tr>
  <td class = "actor">Jayden Carpenter</td>
  <td class = "role"><em>Mickey Mouse</em> (Voice)</td>
 </tr>
 ...
</table>

この演習では、既知の rvest 関数を使ってテーブルのスクレイピングを試します。そうすることで、その関数の限界に気づくはずです。

roles_html 変数には、このテーブルを含むドキュメントが入っています。

この演習はコースの一部です

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

コースを見る

演習の手順

  • 第1章で学んだ関数を使って、テーブルからデータフレームを抽出してみましょう。
  • 得られたデータフレームの内容を確認しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Extract the data frame from the table using a known function from rvest
roles <- roles_html %>% 
  html_element(xpath = "//___") %>% 
  ___()
# Print the contents of the role data frame
___
コードを編集して実行