Comment obtenir le titre d'un lien et la valeur href séparément avec le pack d'agilité html?

.net c# html-agility-pack

Question

J'essaie de télécharger une page contenant un tableau comme celui-ci

<table id="content-table">
  <tbody>
    <tr>
      <th id="name">Name</th>
      <th id="link">link</th>
    </tr>

    <tr class="tt_row">

      <td class="ttr_name">
       <a title="name_of_the_movie" href="#"><b>name_of_the_movie</b></a>
       <br>
       <span class="pre">message</span>
      </td>

      <td class="td_dl">
        <a href="download_link"><img alt="Download" src="#"></a>
      </td>

    </tr>

    <tr class="tt_row"> .... </tr>
    <tr class="tt_row"> .... </tr>
  </tbody>
</table>

Je veux extraire le nom_de_le_movie de td class = "ttr_name" et télécharger le lien depuis td class = "td_dl"

c'est le code que j'ai l'habitude de parcourir en boucle dans les lignes de la table

HtmlAgilityPack.HtmlDocument hDocument = new HtmlAgilityPack.HtmlDocument();
hDocument.LoadHtml(htmlSource);
HtmlNode table = hDocument.DocumentNode.SelectSingleNode("//table");

foreach (var row in table.SelectNodes("//tr"))
{
  HtmlNode nameNode = row.SelectSingleNode("td[0]");
  HtmlNode linkNode = row.SelectSingleNode("td[1]");
}

actuellement, je ne sais pas comment vérifier le nameNode et le linkNode et extraire les données qu'il contient

Toute aide serait appréciée

Cordialement

Réponse acceptée

Je ne peux pas le tester pour le moment, mais cela devrait faire partie des lignes suivantes:

    string name= namenode.Element("a").Element("b").InnerText;
    string url= linknode.Element("a").GetAttributeValue("href","unknown");

Réponse populaire

    public const string UrlExtractor = @"(?: href\s*=)(?:[\s""']*)(?!#|mailto|location.|javascript|.*css|.*this\.)(?<url>.*?)(?:[\s>""'])";

    public static Match GetMatchRegEx(string text)
    {
        return new Regex(UrlExtractor, RegexOptions.IgnoreCase).Match(text);
    }

Voici comment vous pouvez extraire toutes les URL Href. J'utilise cette expression régulière dans l'un de mes projets, vous pouvez le modifier pour répondre à vos besoins et le réécrire pour correspondre au titre également. Je suppose qu'il est plus pratique de les assortir en vrac



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