【问题标题】:Web Scraping with rvest package don't work使用 rvest 包进行网页抓取不起作用
【发布时间】:2021-11-01 23:05:53
【问题描述】:

我正在尝试使用 rvest 获取表格,但它无法识别数字并使用 NA 创建两个额外的列

几个月前它可以工作,但显然他们对网站进行了更改,现在它无法正常工作。我不知道可能是什么问题。

  url <- paste0("https://climatologia.meteochile.gob.cl/application/mensual/temperaturaMediaMensual/170007/2021/08")
tmp <- read_html(url)
tmp <- html_nodes(tmp,"table")
sapply(tmp, function(x) dim(html_table(x, fill = TRUE))) ## ver tabla con datos
tabla <- html_table(tmp[1],fill = T,header=NA, dec = ".")

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • 我的问题是,当查看网页时,表格中有数字,但是当通过网络抓取捕获它时,值不会出现

标签: r web screen-scraping rvest


【解决方案1】:

我认为识别数字没有问题。 html中有两个空列,因此是NA,并且大部分表格都是空白的。

由于有重复的标题,我使用看门人清理标题,然后使用 dplyr 删除自动标记为 x 和 x_2 的结束列。您也可以改为切掉结束列。

我可能会考虑将当前表的Resumen Mensual 部分删除/放入单独的表中。

library(rvest)
library(janitor)
library(dplyr)

url <- paste0("https://climatologia.meteochile.gob.cl/application/mensual/temperaturaMediaMensual/170007/2021/08")

t <- read_html(url) |> 
  html_element('#excel > table') |>
  html_table() |>  
  clean_names() |> 
  select(!starts_with('x'))

t

新的基管 |> 需要R 4.1.0。您可以用 magrittr 中的 %>% 管道替换

【讨论】:

  • 感谢您的回复。但是为什么表格是空白的?如果在输入链接时,列中有数据。我无法知道它为什么会发生。
猜你喜欢
  • 1970-01-01
  • 2019-10-11
  • 2018-02-15
  • 2018-10-27
  • 2015-09-06
相关资源
最近更新 更多