HTMLAgilityPack и таймауты при загрузке

.net c# html-agility-pack vb.net

Вопрос

Я использую HTMLAgilityPack в парсере, который у меня есть на сервере, но у меня возникают проблемы с одним из сайтов, которые я анализирую: каждый день около 6 утра они, как правило, закрывают свои серверы для обслуживания, которое отбрасывает метод Load () для HTMLWeb и делает мое приложение аварийным. У любого из вас, ребята, есть более безопасный способ загрузки веб-сайта в HTMLAgilityPack или, возможно, какой-то способ сделать проверку ошибок на C #, чтобы предотвратить сбой моего приложения? (мой c # немного ржавый). Вот мой код прямо сейчас:

HtmlWeb webGet = new HtmlWeb();
HtmlDocument document = webGet.Load(dealsiteLink); //The Load() method here stalls the program because it takes 1 or 2 minutes before it realizes the website is down

Спасибо!

Популярные ответы

Просто объедините вызов с помощью try-catch:

HtmlWeb webGet = new HtmlWeb();

HtmlDocument document;
try
{
    document = webGet.Load(dealsiteLink); 
}
catch (WebException ex)
{
    // Logic to retry (maybe in 10 minutes) goes here
}

Точная логика повторения будет зависеть от того, как структурировано ваше приложение - вы, вероятно, обнаружите, что блок try-catch должен быть размещен выше в вашем приложении, должен идти намного выше, чем это.

Я думаю, что WebException - это исключение, которое вы должны поймать, но я не могу быть уверенным, потому что я не могу найти документацию. Вы можете обнаружить, что вам также нужно поймать TimeoutException .



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow