我在服务器上的解析器中使用 HTMLAgilityPack,但我正在解析的网站之一出现问题:每天早上 6 点左右,他们倾向于关闭服务器进行维护,这会导致HTMLWeb 的 Load() 方法,并使我的应用程序崩溃。你们有没有更安全的方法将网站加载到 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
。关于c# - HTMLAgilityPack 和加载超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5876825/