Fehler beim Versuch, HTML mit htmllagiltypack zu laden

.net c# html-agility-pack

Frage

Ich versuche diesen Code auszuführen

string path = "http://warisons.rssing.com/chan1729325/all_p43.html";
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(path);
var div = htmlDoc.DocumentNode.Descendants("div");
foreach (var x in div)
{
    Console.WriteLine(x.Attributes["class"].Value);
}

wenn ich diesen Code in htmlDoc.LoadHtml(path); debuggen htmlDoc.LoadHtml(path); Ich habe diesen Fehler erhalten

Quelle für 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs' suchen. Prüfsumme: MD5 {4e 14 d3 b d5 30 6e 2c bf 84 ab 8a 96 82 4a 8f} Die Datei 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs' existiert nicht. Suchen Sie in den Skriptdokumenten nach 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs' ... Suchen Sie in den Projekten nach 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'. Die Datei wurde in einem Projekt nicht gefunden. Suchen im Verzeichnis 'C: \ Programme (x86) \ Microsoft Visual Studio 12.0 \ VC \ crt \ src \' ... Suchen im Verzeichnis 'C: \ Programme (x86) \ Microsoft Visual Studio 12.0 \ VC \ crt \ src \ vccorlib \ '... Suchen im Verzeichnis' C: \ Programme (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ mfc \ '... Suchen im Verzeichnis' C: \ Programme (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ atl \ '... Suchen im Verzeichnis' C: \ Programme (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ include '... Die Einstellungen der Debug-Quelldateien Für die aktive Lösung geben Sie an, dass der Debugger den Benutzer nicht auffordert, die Datei zu finden: d: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs. Der Debugger konnte die Quelldatei 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs' nicht finden.

Akzeptierte Antwort

Ihr Versuch, ein HTML-Dokument vom URI zu laden, ist falsch.

Methof HtmlDocument.LoadHtml lädt html von der angegebenen Zeichenkette, also ist sein Argument HTML-Text selbst, nicht URI.

Um HTML von der bereitgestellten URI zu laden, benötigen Sie etwas wie:

string path = "http://warisons.rssing.com/chan1729325/all_p43.html";
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlWeb().Load(path);

Beachten Sie auch, dass NullReferenceException hier NullReferenceException erhalten NullReferenceException :

x.Attributes["class"].Value

da Sie vor dem Zugriff auf den Wert nicht prüfen, ob ein class vorhanden ist ( x.Attributes["class"] != null ).



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum