-1

我正在用 抓取一个网站urls http://example.com/post/X,其中X 是一个从 1:5000 开始的数字, 我可以rvest使用以下代码抓取:

website <- html("http://www.example.com/post/1")

Name <- website%>% 
  html_node("body > div > div.row-fluid > div > div.DrFullDetails > div.MainDetails > div.Description > h1") %>%
  html_text()

Speciality <- website %>% 
  html_node("body > div > div.row-fluid > div > div.DrFullDetails > div.MainDetails > div.Description > p.JobTitle") %>%
  html_text()

我需要代码来抓取网站上的所有页面,并将抓取的数据放在一个表格中,每个页面都在一个新行中。请帮忙

4

1 回答 1

1

我会将用于抓取单个页面的代码包装在 中lapply,然后rbindlistdata.table包中使用来组合每个页面中的信息。

如果没有实际示例,这很难测试,但请尝试以下操作:

library(rvest)
library(data.table)

scrapeDomain <- function(baseURL="http://www.domain.com/post", index=1:10) {

  scrape1 <- lapply(index, function(n) {

    website <- paste(baseURL, n, sep="/") %>%
      html()

    name <- website %>% 
      html_node("body > div > div.row-fluid > div > div.DrFullDetails > div.MainDetails > div.Description > h1") %>%
      html_text()

    speciality <- website %>% 
      html_node("body > div > div.row-fluid > div > div.DrFullDetails > div.MainDetails > div.Description > p.JobTitle") %>%
      html_text()

    data.table(website=website, name=name, specialty=specialty)

  } )

  rbindlist(scrape1)

}

scrapeDomain()
于 2015-01-03T17:42:14.530 回答