2017-07-08 1 views
0

Je suis un débutant à HTMLAgilityPack mais maintenant progressivement capable de mettre en œuvre avec succès dans mon programme. Le problème que j'ai est "SelectNodes" renvoie par intermittence l'exception Nullpointer. Mais ça marche parfois. J'ai essayé d'attendre de force, en utilisant la commande Sleep, debug/step dans le code, mais n'aide pas, parfois je passe la ligne mais parfois j'échoue à cette ligne avec l'erreur "Une exception non gérée de type 'System.ArgumentNullException' s'est produite dans System.Core.dll Informations supplémentaires: La valeur ne peut pas être nulle. "HtmlAgilityPack - SelectNodes répond par intermittence avec l'exception NullPointer

Ce le site je suis en train de charger et lire les valeurs des nœuds ... https://www.g2crowd.com/categories/mobile-app-testing

Je ne sais pas si cela est quelque chose lié aux cookies/site Minutage sur .. je ne suis pas en mesure de comprendre et je sans doute négligé les propriétés qui doivent être définies pour HTMLWeb()

voici mon code:

HtmlWeb webGet = new HtmlWeb(); 
var document = webGet.Load("https://www.g2crowd.com/categories/mobile-app-testing"); 
//THIS BELOW LINE INTERMITTENTLY FAILS, AT TIMES , IT POPULATES THE ARRAY 
HtmlNode[] symbolnodes = document.DocumentNode.SelectNodes("//h5[@class=\"margin-bottom-4th font-weight-bold ellipsis\"]").ToArray(); 
foreach (HtmlNode item in symbolnodes) 
{ 
} 

Je me doutais bien sur les cookies, j'ai essayé d'ajouter ce ci-dessous le code, mais n'a pas aidé à ce aussi bien

    webGet.PreRequest += request => 
       { 
        request.CookieContainer = new System.Net.CookieContainer(); 
        return true; 
       }; 
+0

"Je ne sais pas si ma question n'est pas claire". Est-ce que n'importe quel expert HTMLAgilityPack ou quelqu'un peut m'aider s'il vous plaît? – SAH

Répondre

0

J'ai été capable de résoudre ce problème. le problème est pour chaque page que les nœuds HTML sont différents. Je ne suis pas sûr que ce soit quelque chose lié au concept HTML dynamique, donc l'élément que j'ai spécifié à la requête renvoie NULL. J'essayais de charger 100 pages différentes 1 par 1, donc quelque part quelques pages ont des éléments différents bien qu'ils appartiennent tous au même site Web.