Errore durante il tentativo di caricare html con htmlagiltypack

.net c# html-agility-pack

Domanda

Sto cercando di eseguire questo codice

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);
}

quando htmlDoc.LoadHtml(path); debug di questo codice in htmlDoc.LoadHtml(path); Ho ricevuto questo errore

Individuazione dell'origine per 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'. Checksum: MD5 {4e 14 d3 b d5 30 6e 2c bf 84 ab 8a 96 82 4a 8f} Il file 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs' non esiste. Cerca nei documenti di script per 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs' ... Guardando nei progetti per 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'. Il file non è stato trovato in un progetto. Cerca nella directory 'C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ VC \ crt \ src \' ... Cerca nella directory 'C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ VC \ crt \ src \ vccorlib \ '... Cerca nella directory' C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ mfc \ '... Cerca nella directory' C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ atl \ '... Ricerca nella directory' C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ include '... Le impostazioni dei file di origine di debug per la soluzione attiva indica che il debugger non chiederà all'utente di trovare il file: d: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs. Il debugger non è riuscito a individuare il file di origine 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'.

Risposta accettata

Il tuo tentativo di caricare il documento html dall'URI non è corretto.

Methof HtmlDocument.LoadHtml carica html dalla stringa fornita, quindi il suo argomento è il testo html stesso, non l'URI.

Per caricare html dall'URI fornito hai bisogno di qualcosa del tipo:

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

Nota anche che puoi ottenere NullReferenceException qui:

x.Attributes["class"].Value

dal momento che non stai controllando se esiste un attributo di class ( x.Attributes["class"] != null ) prima di accedere al suo valore.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché