我正在使用urls http://domain.com/post/X
抓取一个网站,其中 X是一个从1:5000开始的数字
我可以使用此代码使用rvest
废弃:
website <- html("http://www.domain.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()
我需要代码从网站上抓取所有页面,并将疤痕数据放在一个表格中,每一页都放在一个新行中。 请帮忙
答案 0 :(得分:1)
我会将您的代码包装在lapply
中抓取单个页面,然后使用rbindlist
包中的data.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()