Я использую пакеты XML и RCurl R для получения данных с веб-сайта.
Сценарий должен удалить 6 000 000 страниц, поэтому я создал цикл.
for (page in c(1:6000000)){
my_url = paste('http://webpage.....')
page1 <- getURL(my_url, encoding="UTF-8")
mydata <- htmlParse(page1, asText=TRUE, encoding="UTF-8")
title <- xpathSApply(mydata, '//head/title', xmlValue, simplify = TRUE, encoding="UTF-8")
.....
.....
.....}
Однако после нескольких циклов я получаю сообщение об ошибке:
Ошибка в curlPerform (curl = curl, .opts = opts, .encoding = .encoding)
: время ожидания соединения
Проблема в том, что я не понимаю, как работает «тайм-аут». Иногда процесс заканчивается после 700 страниц, а иногда после 1000, 1200 и т. Д. Страниц. Шаг не стабилен.
Когда время соединения истекло, я не могу получить доступ к этой веб-странице с моего ноутбука в течение 15 минут.
Я думал об использовании команды для задержки процесса на 15 минут каждые 1000 страниц списанных
if(page==1000) Sys.sleep(901)
, но ничего не изменилось.
Есть идеи, что не так и как это преодолеть?