C # - Html Agility Pack - не может читать из Интернета

c# html-agility-pack

Вопрос

Я пытаюсь сделать небольшую программу для чтения содержимого с страницы wikipedia, и чтобы получить html, я нашел этот код в другом месте на 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);

Тем не менее, я получаю ошибку времени выполнения «ArgumentNullException был необработанным», и эта строка выделена:

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

Кто-нибудь видит проблему?

Популярные ответы

doc.LoadHtml принимает строку html, а не url . Чтобы загрузить эту страницу, вы можете использовать класс 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 возвращает 622 элемента в моем тесте.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow