Rvest 不返回 html_nodes whan xpath 的 id 在 R 中有重音

Rvest not returning html_nodes whan id of xpath has an accent in R

我正在尝试使用 R 中的 Rvest 从 html 文件中删除 table。但是 html_node 不起作用,我认为这是因为 xpath es 中的 id西班牙语,有口音。

代码如下:

library(rvest)
library(xml2)

url <- "https://www3.ine.gub.uy/boletin/Boletin%20Ingresos%204to%20trimestre%202021.html"
html <- read_html(url)
data <- html_node(html, xpath='//*[@id="ingreso-medio-per-cápita"]/table/tbody')

我一直在谷歌搜索,但找不到解决方案。如果有人能帮助我,我将不胜感激!

我不确定这里的问题是什么,但是由于重音字符之前的字符串仍然是唯一的,您可以使用 xpath 函数获取它 starts-with

library(rvest)
library(xml2)

url <- "https://www3.ine.gub.uy/boletin/Boletin%20Ingresos%204to%20trimestre%202021.html"
html <- read_html(url)

xpath <- '//div[starts-with(@id,"ingreso-medio-per-c")]/table'
data <- html_table(html_nodes(html, xpath = xpath))[[1]][1:3,]
#> Warning in table_fill(cells, trim = trim): NAs introduced by coercion

data
#> # A tibble: 3 x 3
#>   ``         `Trimestre 3 2021` `Trimestre 4 2021`
#>   <chr>                   <dbl>              <dbl>
#> 1 Total país               25.8               26.6
#> 2 Montevideo               32.5               33.5
#> 3 Interior                 21.5               22.3

reprex package (v2.0.1)

于 2022-02-15 创建

或者你可以使用,

library(rvest)
library(tidyverse)

url = 'https://www3.ine.gub.uy/boletin/Boletin%20Ingresos%204to%20trimestre%202021.html'

url %>% 
  read_html() %>% 
  html_table()

从网页获取所有表格。