C#& HTML敏捷包 - 返回空

时间:2017-06-14 19:54:08

标签: c# html xcode select html-agility-pack

我想创建一个控制台应用程序,它可以返回当我输入频道时他们拥有多少订阅者。我目前从Console.ReadLine()下载搜索页面为html。这会返回一个html页面成功,因为我添加了一个.Save来查看下载是否有任何输出。但是当使用xcode抓取html时,它返回null。我曾尝试多次使用谷歌Chrome拷贝xcode,但没有运气。

这是我到目前为止的代码:

    public static void GetYoutubeSubscriptions2()
    {
        string url = "https://www.youtube.com/results?search_query=" + Regex.Replace(Console.ReadLine(), @"\s+", "+");

        Console.WriteLine(url);

        HtmlWeb web = new HtmlWeb();
        HtmlDocument document = web.Load(url);
        //document.Save(path1);

        var htmlNodes = document.DocumentNode.SelectNodes(@"//*[@id=""section - list - 231763""]/li[3]/div/div[2]/div[3]/span/span[1]");

        foreach (var node in htmlNodes)
        {
            Console.WriteLine(node.InnerText);
        }

        Console.ReadLine();
    }

任何帮助建议表示赞赏! :)

1 个答案:

答案 0 :(得分:0)

这就是你需要的:

var htmlNodes = document.DocumentNode.Descendants("span").FirstOrDefault(_ => _.HasClass("yt-subscriber-count"));

这是HasClass扩展

public static bool HasClass(this HtmlNode node, params string[] classValueArray)
{
      var classValue = node.GetAttributeValue("class", "");
      var classValues = classValue.Split(' ');
      return classValueArray.All(c => classValues.Contains(c));
}