【发布时间】:2016-07-27 03:09:04
【问题描述】:
我有以下功能可以使用 RSelinium 和 phantomjs 从网站获取一些 url。
get_url <- function(url){
rdr$navigate(url)
li <- rdr$findElements(using = 'xpath', "//div[@data-id]")
str <- sapply(li, function(x){x$getElementAttribute('outerHTML')})
if(length(str)>1){
tree <- htmlParse(str)
url <- getNodeSet(tree, '//div//a[@class="link url"]')
url <- sapply(url, xmlGetAttr, 'href')
}
}
而url 存储在一个 30 x 60 的矩阵中。
我尝试使用以下嵌套循环执行此操作。
for(i in 1:ncol(offset_url)){
for(j in 1:nrow(offset_url)){
url_list <- rbind(url_list,get_url(offset_url[j,i]))
}
}
但是,执行起来需要很多时间。
有没有办法可以使用应用函数来减少时间?
【问题讨论】:
-
发布的代码存在许多句法问题,您可能会将这些问题放在一起作为示例。你能发布实际代码吗?