2017-07-08 3 views
0

Ich bin ein Neuling zu HTMLAgilityPack, aber jetzt schrittweise in der Lage, erfolgreich in meinem Programm zu implementieren. Das Problem, was ich habe, ist "SelectNodes" Intermittierend gibt Nullpointer Ausnahme zurück. Aber es funktioniert manchmal. Ich habe versucht, gewaltsam zu warten, mit dem Sleep-Befehl, Debug/Schritt im Code, aber es hilft nicht, manchmal überlasse ich die Linie, aber manchmal scheiterte ich an dieser Zeile mit Fehler "Eine nicht behandelte Ausnahme vom Typ 'System.ArgumentNullException' aufgetreten in System.Core.dll Zusätzliche Information: Wert kann nicht null sein. "HtmlAgilityPack - SelectNodes intermittierend reagiert mit NullPointer-Ausnahme

die Webseite Dieser i Werte von den Knoten zu laden versuche und liest ... https://www.g2crowd.com/categories/mobile-app-testing

Nicht sicher, ob dies etwas zu Cookies/Webseite Seite Ablaufen .. verwandt bin ich, um herauszufinden, nicht in der Lage und ich wahrscheinlich alle Eigenschaften übersehen, die müssen für HTMLWeb eingestellt werden()

hier ist mein 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) 
{ 
} 

ich Cookies im Verdacht, ich versucht, dies unter Code hinzufügen, aber nicht helfen, auf dass auch

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

"nicht sicher, ob meine Frage nicht klar ist". Kann mir irgendjemand HTMLAgilityPack oder jemand hier helfen? – SAH

Antwort

0

ich konnte dies lösen. Das Problem ist, dass für jede Seite die HTML-Knoten unterschiedlich sind. Ich bin mir nicht sicher, ob dies etwas mit dem Dynamic HTML-Konzept zu tun hat, so dass das Element, das ich für die Abfrage angegeben habe, NULL zurückgibt. Ich habe versucht, 100 verschiedene Seiten 1 zu 1 zu laden, also haben einige Seiten unterschiedliche Elemente, obwohl sie alle zur selben Website gehören.

Verwandte Themen