1

どうすればhref属性を取得できます<a class='l'>か?

これは私のコードです。HtmlAgilityPackを使用してHTMLソースをロードしますがSelectNodes("//a[@class='l']")foreachループで反復処理すると機能しません。

何か案は?

HtmlWeb siec = new HtmlWeb();
HtmlAgilityPack.HtmlDocument htmldokument = siec.Load(@"https://www.google.pl/search?q=beer");
List<string> list = new List<string>();

if (htmldokument != null)
{
    foreach (HtmlNode text in htmldokument.DocumentNode.SelectNodes("//a[@class='l']"))
    {

        list.Add(text.InnerHtml);
        Console.WriteLine(text.InnerHtml);
    }
}
Console.ReadKey();
4

1 に答える 1

1

次のように HtmlNode 属性にアクセスできます。

node.Attributes["name"].Value

またはさらに良い(属性が存在しない場合に備えて):

node.GetAttributeValue("name", "")

属性nameが見つからない場合は、空の文字列が返されます。


HtmlWeb siec = new HtmlWeb();
HtmlAgilityPack.HtmlDocument htmldokument = siec.Load(@"https://www.google.pl/search?q=beer");
List<string> list = new List<string>();

if (htmldokument != null)
{
    foreach (HtmlNode text in htmldokument.DocumentNode.SelectNodes("//a[@class='l']"))
    {
        var href = text.GetAttributeValue("href", "");
        list.Add(href);
        Console.WriteLine(href);
    }
}
Console.ReadKey();
于 2012-09-18T17:47:13.097 に答える