構造が悪いテーブルに対する 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
___