C # - Pack d'agilité HTML - Impossible de lire sur le Web

c# html-agility-pack

Question

J'essaye de faire un petit programme pour lire le contenu d'une page wikipedia, et pour obtenir le code HTML, j'ai trouvé ce code ailleurs sur 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);

Cependant, je reçois une erreur d'exécution "ArgumentNullException n'a pas été gérée" et cette ligne est mise en surbrillance:

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

Est-ce que quelqu'un voit le problème?

Réponse populaire

doc.LoadHtml prend une chaîne HTML et non une URL . Pour télécharger cette page, vous pouvez utiliser 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 renvoie 622 éléments dans mon test.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi