HtmlAgilityPack搜索网址链接

时间:2018-06-01 18:05:11

标签: c# html-agility-pack

我为一群朋友创建了WindownsFormApplication。我使用HtmlAgilityPack作为我的申请。

我需要找到taco addon的所有版本,如下所示:

<li><a href='https://www.dropbox.com/s/nks140nf794tx77/GW2TacO_034r.zip?dl=0'>Download Build 034.1866r</a></li> 

此外,我需要检查最新版本,以便使用以下代码下载文件:

public static bool Tacoisuptodate(string Version)
    {
        // Load HtmlDocuments 
        var doc = new HtmlWeb().Load("http://www.gw2taco.com/");
        var body = doc.DocumentNode.SelectNodes("//body").Single();
        // Sort out the document to take that he to interest us
        //SelectNodes("//div"))
        foreach (var node in doc.DocumentNode.SelectNodes("//div"))
        {
            // Check for null value
            var classeValue = node.Attributes["class"]?.Value;
            var idValue = node.Attributes["id"]?.Value;
            var hrefValue = node.Attributes["href"]?.Value;

            // We search <div class="widget LinkList" id="LinkList1" into home page >             
            if (classeValue == "widget LinkList" && idValue == "LinkList1")
            {

                foreach(HtmlNode content in node.SelectNodes("//li"))
                {
                    Debug.Write(content.GetAttributeValue("href", false));
                }
            }


        }
        return false;
    }

如果有人可以帮助我,我会非常感激。

1 个答案:

答案 0 :(得分:1)

单个xpath就足够了。

var xpath = "//h2[text()='Downloads']/following-sibling::div[@class='widget-content']/ul/li/a";

var doc = new HtmlAgilityPack.HtmlWeb().Load("http://www.gw2taco.com/");
var downloads = doc.DocumentNode.SelectNodes(xpath)
                .Select(li => new
                {
                    href = li.Attributes["href"].Value,
                    name = li.InnerText
                })
                .ToList();