Я очищаю веб-страницу с помощью библиотеки 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 для преобразования в фрейм данных и затем применяю уникальное для получения соответствующих данных.
Есть ли способ, с помощью которого я могу извлечь все данные из таблицы, не углубляясь один за другим.