开始使用免费开始使用

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 语言网页抓取

查看课程

练习说明

  • 尝试使用您在第 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
___
编辑并运行代码