【发布时间】:2016-09-25 10:47:00
【问题描述】:
我的代码正在运行,它是一个网页抓取脚本,首先从网页的 URL 中获取,然后使用 for 循环遍历所有 URL。在循环期间,它需要一些信息并将其保存到一个数据帧中,我首先在循环之前将其创建为一个空数据帧。该进程使用 rbind 并且工作正常。
但是,我觉得这段代码不是最优的,可能有一个包,我认为解决方案将是 lapply ......也许不是。但我希望有人能给我指点一个更好的编码方法(如果存在的话)以及如何实现它。
library(rvest)
URL <- "http://www.transfermarkt.com/premier-league/startseite/wettbewerb/GB1"
WS <- read_html(URL)
URLs <- WS %>% html_nodes(".hide-for-pad .vereinprofil_tooltip") %>% html_attr("href") %>% as.character()
URLs <- paste0("http://www.transfermarkt.com",URLs)
Catcher1 <- data.frame(Player=character(),P_URL=character())
for (i in URLs) {
WS1 <- read_html(i)
Player <- WS1 %>% html_nodes("#yw1 .spielprofil_tooltip") %>% html_text() %>% as.character()
P_URL <- WS1 %>% html_nodes("#yw1 .spielprofil_tooltip") %>% html_attr("href") %>% as.character()
temp <- data.frame(Player,P_URL)
Catcher1 <- rbind(Catcher1,temp)
cat("*")
}
【问题讨论】:
-
我投票结束这个问题,因为它应该被移到代码审查 stackexchange
标签: r