使用RVest使用标题名称抓取特定的html表

问题描述 投票:0回答:1

[尝试从特定的建筑许可信息表中抓取数据。以下代码适用于我正在遍历的大多数建筑许可证:

library(rvest)
URL <- "https://www.nanaimo.ca/WhatsBuilding/Folder/BP125602"

task_table <- URL %>%
  read_html() %>%
  html_table() %>%
  .[[3]] %>%
  .[["Task"]]

但是有时任务信息不在页面的第三张表中。例如https://www.nanaimo.ca/WhatsBuilding/Folder/BP125721任务信息在第二个表中。

无论页面上的位置如何,我都如何使用标题为“任务”的列来抓取信息?

r web-scraping rvest
1个回答
0
投票

这应该起作用:

library(rvest)
URL <- "https://www.nanaimo.ca/WhatsBuilding/Folder/BP125602"

tables <- URL %>%
  read_html() %>%
  html_table()


task_table <- lapply(tables, function(x) if(names(x) == "Task"){x})

task_table[sapply(task_table, is.null)] <- NULL
task_table <- task_table[[1]][["Task"]]

这是您要找的吗?

© www.soinside.com 2019 - 2024. All rights reserved.