0

ウィキペディアのページからコンテンツを読み取り、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 was unhandled」が発生し、次の行が強調表示されます。

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

誰かが問題を見ていますか?

4

2 に答える 2

4

doc.LoadHtmlurlではなくhtml 文字列を取ります。そのページをダウンロードするには、クラスを使用できます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 項目を返します。

于 2013-09-02T22:05:36.173 に答える