HtmlAgilityPack che causa problemi con l'html malformato

c# html-agility-pack

Domanda

Voglio estrarre un testo significativo da un documento html e stavo usando html-agility-pack per lo stesso. Ecco il mio codice:

string convertedContent = HttpUtility.HtmlDecode(
    ConvertHtml(HtmlAgilityPack.HtmlEntity.DeEntitize(htmlAsString))
);

ConvertHtml:

string convertedContent = HttpUtility.HtmlDecode(
    ConvertHtml(HtmlAgilityPack.HtmlEntity.DeEntitize(htmlAsString))
);

Convertire in:

string convertedContent = HttpUtility.HtmlDecode(
    ConvertHtml(HtmlAgilityPack.HtmlEntity.DeEntitize(htmlAsString))
);

Ora, in alcuni casi, quando le pagine html sono malformate (ad esempio la seguente pagina - http://rareseeds.com/cart/products/Purple_of_Romagna_Artichoke-646-72.html ha un meta-tag malformato come <meta content="text/html; charset=uft-8" http-equiv="Content-Type"> ) [Nota" uft "invece di utf] il mio codice sta vomitando nel momento in cui sto cercando di caricare il documento html.

Qualcuno mi può suggerire come posso superare queste pagine html malformate e ancora estrarre testo rilevante da un documento html?

Grazie, Kapil

Risposta accettata

Come si dice nella pagina del progetto HtmlAgilityPack "Il parser è molto tollerante con l'HTML malformato" del mondo reale ". Ma il tipo di errore che descrivi è troppo serio forse per essere corretto. Puoi impostare la codifica predefinita con:

 HtmlDocument doc = new HtmlDocument();
 doc.OptionDefaultStreamEncoding = Encoding.UTF8;



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é