Очистите веб-страницы с разным количеством таблиц, используя R - PullRequest
0 голосов
/ 08 сентября 2018

Хорошо, поэтому я пытаюсь почистить несколько страниц веб-сайта для получения информации о продукте, проблема в том, что в зависимости от продукта это может быть один или несколько дополнительных продуктов (например, женская обувь против мужской обуви). Мой код сейчас просто выбирает первую таблицу, мои попытки подсчитать количество таблиц и затем очистить их потерпели неудачу. Есть идеи?

Пример проблем, вызывающих URL: https://www.ncmedical.com/item_28.html

Текущий код, извлекающий первую таблицу

library(XML)
library(rvest)

base_url <- "https://www.ncmedical.com/item_"

productnumbers <- NULL

productnumbers <- seq(1,3729,by = 1)

getlink <- function(x){
return(paste(base_url,x,".html",sep = ""))
}

result <- mapply(getlink, productnumbers)
Links = plyr::ldply(result, rbind)
names(Links) <- c("Link")
Links$Link <- as.character(Links$Link)
result <- NULL


getproductdata <- function(x) {

 webpage <- read_html(x)

 tbls <- html_nodes(webpage, "table")

 tbls_ls <- webpage %>%
   html_nodes("table") %>%
  .[2] %>%
   html_table(fill = TRUE)

 data <- as.data.frame(tbls_ls)
  return(data)
}


result <- lapply(Links$Link[1:100],getproductdata)

PriceData = plyr::ldply(result, rbind)
...