HtmlAgilityPack en grattant "href"

c# html html-agility-pack

Question

J'ai écrit ce code .:

Attention, le lien pointe vers le site adulte !!!

        var getHtmlWeb = new HtmlWeb();
        var document = getHtmlWeb.Load("http://xhamster.com/movies/2808613/jewel_is_a_sexy_cougar_who_loves_to_fuck_lucky_younger_guys.html");
        var aTags = document.DocumentNode.SelectNodes("//div[contains(@class,'noFlash')]"); 


        if (aTags != null)

        foreach (var aTag in aTags)
        {

            var href = aTag.Attributes["href"].Value;

            textBox2.Text = href;

        } 

J'ai une erreur quand j'essaie de lancer ce programme.

Si je mets autre chose dans "var href" par exemple .:

        var getHtmlWeb = new HtmlWeb();
        var document = getHtmlWeb.Load("http://xhamster.com/movies/2808613/jewel_is_a_sexy_cougar_who_loves_to_fuck_lucky_younger_guys.html");
        var aTags = document.DocumentNode.SelectNodes("//div[contains(@class,'noFlash')]"); 


        if (aTags != null)

        foreach (var aTag in aTags)
        {

            var href = aTag.Attributes["href"].Value;

            textBox2.Text = href;

        } 

J'ai le texte interne, et je peux voir là le lien "href =", et quelques autres données

Mais je n'ai besoin que du lien après le href!

Réponse acceptée

Vous sélectionnez des éléments div . Un élément div ne peut pas avoir d'attribut href Si vous voulez obtenir le href de balises anchor, vous pouvez utiliser:

var hrefs = aTags.Descendants("a")
           .Select(node => node.GetAttributeValue("href","")) 
           .ToList();



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi