Могу ли я убедиться, что функция promises завершена, прежде чем продолжить в R?
я используюcrrri
пакет для парсинга некоторых динамических сайтов; однако, когда я запускаю его на нескольких страницах в цикле for, возникает задержка (я предполагаю, что из-заpromises
), что означает, что иногда при доступе кhtml_temp
файл, он еще не записан и в результате вместо этого извлекает предыдущую веб-страницу.
Есть ли способ убедиться, что файл был записан до перехода к следующей строке в цикле for?
html_file <- tempfile(fileext = ".html")
chrome <- Chrome$new()
client <- chrome$connect()
dump_DOM <- function(client,url) {
Network <- client$Network
Page <- client$Page
Runtime <- client$Runtime
Network$enable() %...>%
{ Page$enable() } %...>%
{ Network$setCacheDisabled(cacheDisabled = TRUE) } %...>%
{ Page$navigate(url = url) } %...>%
{ Page$loadEventFired() } %...>% {
Runtime$evaluate(
expression = 'document.documentElement.outerHTML'
)
} %...>% {
writeLines(c(.$result$value, "\n"), con = html_file)
} %>%
finally(
~ client$disconnect()
) %...!% {
cat("Error:", .$message, "\n")
}
}
url_list <- c('https://facebook.com','https://twitter.com','https://google.com')
for (i in 1:3){
client <- chrome$connect()
client %...>% dump_DOM(url = url_list[i]))
hlink <- read_html(html_file)
}