C # - Html Agility Pack: impossibile leggere dal Web

c# html-agility-pack

Domanda

Sto provando a fare un piccolo programma per leggere il contenuto da una pagina di Wikipedia, e per ottenere l'html, ho trovato questo codice altrove su SO

        HtmlDocument doc = new HtmlDocument();
        StringBuilder output = new StringBuilder();

        doc.LoadHtml("http://en.wikipedia.org/wiki/The Metamorphosis of Prime Intellect");
        var text = doc.DocumentNode.SelectNodes("//body//text()").Select(node => node.InnerText);

        foreach (string line in text)
            output.AppendLine(line);

        string textOnly = HttpUtility.HtmlDecode(output.ToString());

        Console.WriteLine(textOnly);

Tuttavia, sto ricevendo un errore di runtime "ArgumentNullException was nothand", e questa riga è evidenziata:

        var text = doc.DocumentNode.SelectNodes("//body//text()").Select(node => node.InnerText);

Qualcuno vede il problema?

Risposta popolare

doc.LoadHtml accetta html string non url . Per scaricare quella pagina è possibile utilizzare la classe HtmlAgilityPack.HtmlWeb

var web = new HtmlAgilityPack.HtmlWeb();
var doc = web.Load("http://en.wikipedia.org/wiki/The Metamorphosis of Prime Intellect");

var text = doc.DocumentNode.SelectNodes("//body//text()").Select(node => node.InnerText);
var output = String.Join("\n", text);

SelectNodes restituisce 622 elementi nel mio test.



Related

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é