Я хочу проверить состояние нескольких веб-сайтов (около 8000).
Я нашел этот замечательный пример:
проверка правильности списка URL-адресов с помощью GET
This solution uses this code:
websites <- read.table(header=T, text="website
1 www.msn.com
2 www.wazl.com
3 www.amazon.com
4 www.rifapro.com")
library(httr)
urls <- paste0(ifelse(grepl("^https?://", websites$website, ig=T), "", "http://"),
websites$website)
lst <- lapply(unique(tolower(urls)), function(url) try(HEAD(url), silent = T))
names(lst) <- urls
sapply(lst, function(x) if (inherits(x, "try-error")) -999 else status_code(x))
Однако для некоторых веб-сайтов это занимает много времени, например, если я использую http://www.chewy.com вместо www.wazl.com.
Вот несколько примеров ссылок, которые отлично работают, если я исключу последнюю жевательную ссылку:
501 http://www.bedrockdata.com
502 http://www.beecroftortho.com
503 http://secure.beenevaluated.com
504 http://beercitizen.com
951 http://www.chewy.com
Почему это? Моя первая идея - использовать функцию тайм-аута, но я не знаю, где ее реализовать. Я не получаю никакого сообщения об ошибке, код просто не закончится, и мне придется перезапустить сеанс R.