Ich versuche, ein link
mit xpath
aus der unten genannten URLNullreferenceexception in HtmlAgilityPack
string url = "http://www.album-cover-art.org/search.php?q=Ruin+-+Live+Album+Version+Lamb+of+God"
Mein Code zu extrahieren:
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc = web.Load(url); //Exception generated here Line 23
if (htmlDoc.DocumentNode != null)
{
HtmlNode linkNode = htmlDoc.DocumentNode.SelectSingleNode(".//*[@id='related_search_row']/img/@src");
if (linkNode != null)
Console.WriteLine(linkNode.InnerText);
}
Der obige Code kompiliert gut, aber wenn ich versuche, es erzeugt zu laufen eine Ausnahme
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
Kompletter Stapeltrace
System.NullReferenceException: Object reference not set to an instance of an object.
at HtmlAgilityPack.HtmlDocument.ReadDocumentEncoding(HtmlNode node) in C:\Source\htmlagilitypack\Trunk\HtmlAgilityPack\HtmlDocument.cs:line 1916
at HtmlAgilityPack.HtmlDocument.PushNodeEnd(Int32 index, Boolean close) in C:\Source\htmlagilitypack\Trunk\HtmlAgilityPack\HtmlDocument.cs:line 1805
at HtmlAgilityPack.HtmlDocument.Parse() in C:\Source\htmlagilitypack\Trunk\HtmlAgilityPack\HtmlDocument.cs:line 1468
at HtmlAgilityPack.HtmlDocument.Load(TextReader reader) in C:\Source\htmlagilitypack\Trunk\HtmlAgilityPack\HtmlDocument.cs:line 769
at HtmlAgilityPack.HtmlWeb.Get(Uri uri, String method, String path, HtmlDocument doc, IWebProxy proxy, ICredentials creds) in C:\Source\htmlagilitypack\Trunk\HtmlAgilityPack\HtmlWeb.cs:line 1515
at HtmlAgilityPack.HtmlWeb.LoadUrl(Uri uri, String method, WebProxy proxy, NetworkCredential creds) in C:\Source\htmlagilitypack\Trunk\HtmlAgilityPack\HtmlWeb.cs:line 1563
at HtmlAgilityPack.HtmlWeb.Load(String url, String method) in C:\Source\htmlagilitypack\Trunk\HtmlAgilityPack\HtmlWeb.cs:line 1149
at HtmlAgilityPack.HtmlWeb.Load(String url) in C:\Source\htmlagilitypack\Trunk\HtmlAgilityPack\HtmlWeb.cs:line 1107
at ScreenScrapping.Program.Main(String[] args) in c:\Users\ranveer\csharp\ScreenScrapping\ScreenScrapping\Program.cs:line 23
Also, meine Frage ist, warum ich diese Ausnahme bekomme.
Mit der Version '1.4.3' der HtmlAgilityPack Ihrer Probe funktioniert gut. Welche Version verwendest du? – nemesv
@nemesv: Jetzt verwende ich HtmlAgilityPack ver1.4.3. Jetzt bekomme ich keinen Fehler außer 'Console.WriteLine (linkNode.InnerText); 'gibt keine Ausgabe und weder' linkNode' ist null Ich habe das überprüft. – RanRag
Wenn ich xpath '// title/text()' verwende, funktioniert es gut, aber wenn ich zu Xpath-Ausdrücken mit Zugriff auf Attribute über '/ @ href oder/@ src' wechsele, funktioniert es nicht. – RanRag