【发布时间】:2019-07-22 04:31:02
【问题描述】:
我正在使用 rvest 库抓取网页,我的兴趣是从网页中的表格中提取所有数据。
library(rvest)
library(tidyr)
url <- ''
# Parsing the HTML Code from Website
hdb_webpage <- read_html(url)
## Grabbing Page Info - Table Input 1
dat_1 <- hdb_webpage %>%
html_table(header=FALSE) %>%
.[[2]] %>%
as.data.frame()
# Transposing
dat_1 <- as.data.frame(t(dat_1$X3))
# Changing colnames
colnames(dat_1) <- c("Name", "Address", "Category", "TradeType", "Contact")
我继续对列表中存在的其余数据框手动执行相同的操作。列表中实际上存在 18 个数据框,其中包含不同的变量和观察值,这导致需要花费大量时间来清理数据。
或者,为了抓取整个表格,我使用以下代码;
tbls_ls <- hdb_webpage %>%
html_nodes("table") %>%
html_table(header = FALSE) %>%
.[2:18]
df <- data.frame(matrix(unlist(tbls_ls), nrow=279, byrow=T),stringsAsFactors=FALSE)
df <- unique(df)
这段代码将表格中的所有信息提取到列表中,然后我使用 unlist 转换为数据框,然后应用 unique 来获取相关数据。
有没有一种方法可以让我从表中提取所有数据而无需一一进行。
【问题讨论】:
标签: r web-scraping html-table rvest