Ich versuche, Text in einem DIV mit HtmlAgilityPack in WinForms C # zu erhalten.
Mein Code ist:
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("http://www.tibia.com/news/?subtopic=latestnews");
var res = doc.DocumentNode.SelectSingleNode("//div[@id='PlayersOnline']");
var content = res.InnerHtml;
// Print content
MessageBox.Show(content);
Der Inhalt, den ich zu bekommen versuche, stammt von: http://www.tibia.com/news/?subtopic=latestnews
Oben rechts auf der Website gibt es eine Box mit der Anzahl der "Spieler Online". Ich möchte diesen Betrag bekommen.
Der HTML-Code auf der Website sieht folgendermaßen aus:
<div id="PlayersOnline" onclick="window.location = 'https://secure.tibia.com/community/?subtopic=worlds';">11723<br>Players Online</div>
Also möchte ich 11723
als Ausgabe bekommen. Es wäre egal, wenn ich das 11723<br>Players Online
: 11723<br>Players Online
als Ausgabe 11723<br>Players Online
. Ich könnte einfach später wieder übereinstimmen oder Zeichenfolge oder etwas aufteilen, um das br-Tag zu ignorieren.
Aber keiner meiner Code funktioniert und ich weiß nicht warum. Die Anwendung stürzt ab und sagt
System.NullReferenceException: 'Object reference not set to an instance of an object.'
<res>5__8 was null.
Ändern Sie diese Zeilen:
HtmlAgilityPack.Web webSite = new HtmlAgilityPack.Web();
HtmlAgilityPack.HtmlDocument document = webSite.Load("http://www.tibia.com/news/?subtopic=latestnews");
string content = document.GetElementbyId("PlayersOnline").OuterHtml;