【问题标题】:Learning web scraping unable to understand : html_nodes("table") %>% `[[`(6) %>%学习网页抓取看不懂:html_nodes("table") %>% `[[`(6) %>%
【发布时间】:2022-01-09 11:04:59
【问题描述】:

我正在学习 r 中的网页抓取,编写了以下代码:

url <- "https://en.wikipedia.org/wiki/World_population"  

library(rvest)
library(tidyr)
library(dplyr)

ten_most_df <- read_html(url) 



ten_most_populous <- ten_most_df %>% 
  html_nodes("table") %>% `[[`(6) %>% html_table()

在上述代码中,[[(6) 代表什么。

我也为此参考了一些文档,其中写了以下文本,但对此不清楚:

"对于向量和矩阵,[[ 形式很少使用,尽管它们有一些轻微的语义 与 [ 形式的区别(例如,它删除任何名称或 dimnames 属性,并且该部分 匹配用于字符索引)"

请您对此进行解释,将非常有帮助。谢谢

【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    这只是从节点集中选择第 6 个元素的一种方式。

    代码ten_most_df %&gt;% html_nodes("table")返回一个包含26个元素的xml_nodeset对象,对应页面上的26个表。 [[(6) 对对象进行子集化并返回第 6 个节点。

    事实上,有一种更快捷的方法,只使用html_table,它会返回列表中的表格:

    ten_most_df %>% 
      html_table() %>%
      .[[6]] 
    

    我个人觉得这更容易阅读; . 代表列表,[[n]] 是访问列表元素编号n 的标准方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 2011-09-20
      • 2020-10-21
      • 1970-01-01
      相关资源
      最近更新 更多