HtmlAgilityPackを使用して、ウェブページ上の要素が存在することを確認します

c# dom html-agility-pack

質問

http://google.comにいるとします。ページにid="hplogo"要素があることを確認したいと思います(これはGoogleロゴです)。

私はHtmlAgilityPackを使いたいので、次のように記述します:

    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml("http://google.com");
    var foo = (from bar in doc.DocumentNode.DescendantNodes()
               where bar.GetAttributeValue("id", null) == "hplogo"
               select bar).FirstOrDefault();
    if (foo == null)
    {
        HasSucceeded = 1;
        MessageBox.Show("not there");
    }
    else
    {
        MessageBox.Show("it's there");
    }
    return HasSucceeded;
}

それはそこにあるので、 "それはそこにある"というメッセージを返すべきです。しかし、それはしません。私は間違って何をしていますか?

受け入れられた回答

メソッドLoadHtml(html)は、解析するためのHTMLコンテンツを含む文字列をロードします。これは、ロードするリソースのURLではありません。文字列"http://google.com"を読み込んで、その中にロゴを見つけようとしています。どちら結果をもたらさないのでしょうか?

WebClientを使用してリソースコンテンツをダウンロードすることができます。

WebClient client = new WebClient();
string html = client.DownloadString("http://google.com");
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ