C# HTMLAgilityPack和返回完整表时出现问题

C# HTMLAgilityPack和返回完整表时出现问题,c#,html-agility-pack,C#,Html Agility Pack,我正在处理一些html表,并试图用htmlagilitypack挖掘它们。源html可在此处找到: 样本表: 艺术家: 歌曲: 评级: 类型: tab pro [ 5 ] 标签 [ 30 ] 标签 [ 12 ] 标签 信息 +难度:新手 [ 20 ] 标签 [ 5 ] 标签 信息 +难度:新手 +调谐:下降C [ 6 ] 标签 信息 +难度:新手 [ 9 ] 标签 此代码将打印表上所有链接的url var doc = new HtmlDocument(); v

我正在处理一些html表,并试图用htmlagilitypack挖掘它们。源html可在此处找到: 样本表:

艺术家: 歌曲: 评级: 类型: tab pro [ 5 ] 标签 [ 30 ] 标签 [ 12 ] 标签 信息 +难度:新手 [ 20 ] 标签 [ 5 ] 标签 信息 +难度:新手

+调谐:下降C

[ 6 ] 标签 信息 +难度:新手 [ 9 ] 标签
此代码将打印表上所有链接的url

        var doc = new HtmlDocument();
        var web = new WebClient();
        string source_code = web.DownloadString("https://www.ultimate-guitar.com/search.php?title=breaking+benjamin+polyamorous&type[1]=200&rating[0]=4&rating[1]=5");
        doc.LoadHtml(source_code);
        HtmlNodeCollection links = doc.DocumentNode.SelectNodes("//a[contains(@class,'link')]");
        foreach (var link in links)
        {
            Console.WriteLine("{0} {1}", link.InnerText, link.Attributes["href"].Value);
        }   

如果选择单个节点,则不应期望获得集合,而应获得节点(如果存在)。解析文档时,我没有收到任何错误。请检查您使用的Agility版本是否与Microsoft framework兼容。此外,如果您是从web获取此html,请确保编码正确。使用上面的代码可以正常工作。现在我想知道我正在获取的源html代码是否格式不正确?这是html:view源代码的完整源代码:修改后的代码不再返回完整的表。它只返回如图所示的前两个链接:Breaking Benjamin/tabs/Breaking_Benjamin_tabs.htm Polyamorous这进一步导致我认为源格式有问题?如果第一次通过html整洁器(如AgilityPack)运行相同的html数据时,由于下载的html语法不正确,因此无法解析文档,则该html数据可以正常工作。您发布的html代码不会重现错误,因为它是正确的。因此,某种正则表达式搜索是处理此html的方法吗?Agility在找到格式错误的html double而不是one后关闭表。因此,只有一些链接似乎属于表tresults。是的,您可以使用regex,只更改xpath,不依赖表查找链接。我已经编辑了代码。现在它的目标链接是一个包含单词link的类。希望它不会太宽。