【发布时间】:2022-01-10 07:17:00
【问题描述】:
我正在学习 r 中的网页抓取,并了解 HTML 代码。但这里有些混乱...
代码 1:
url <- "https://en.wikipedia.org/wiki/World_population"
ten_most_df <- read_html(url)
ten_most_populous <- ten_most_df %>%
html_table() %>%
.[[6]]
代码 2:
url <- "https://en.wikipedia.org/wiki/World_population"
ten_most_df <- read_html(url)
ten_most_populous <- ten_most_df %>%
html_nodes(xpath="/html/body/div[3]/div[3]/div[4]/div/table[5]") %>% html_table()
代码 1 和 2 中使用的方法是否与代码 1 中的方法相同,我们正在抓取 6 节点,但是代码 2 对我来说不清楚,因为 div[3] 重复了两次。你能澄清一下吗?会很有帮助的。。谢谢。
【问题讨论】:
-
我也会考虑
html_node(xpath='//*[@id="10_most_populous_countries"]/parent::h3/following-sibling::table') %>%html_table。对于是否索引到表中而不是依赖于 html 中的其他现有关系,这是个人偏好。应避免使用长选择器/xpath,因为它们容易中断。我通常会寻求稳定的属性/元素(基于经验)。可能还考虑使用 Wayback 机器来感受此页面的 html 更改(如果可能的话)。
标签: r web-scraping xpath rvest