1

如何从中获取 href 属性<a class='l'>

SelectNodes("//a[@class='l']")这是我的代码 - 它使用 HtmlAgilityPack 加载 HTML 源代码,但是在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 回答