使用R刮擦具有不同表数的网页

时间:2018-09-07 21:40:15

标签: html r xml web-scraping rvest

好,所以我试图刮擦网站上的几页以获得产品信息,问题在于,根据产品的不同,它可能是一个或多个子产品(想想女鞋和男鞋)。现在,我的代码只是选择第一个表,我尝试计算表的数量然后将其抓取失败。有什么想法吗?

导致问题的网址示例: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)

0 个答案:

没有答案