どのようにHTMLのアジリティパックとリンクのタイトルとhrefの値を別々に取得するのですか?

.net c# html-agility-pack

質問

私はこのようなテーブルを含むページをダウンロードしようとしています

<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>

私はtd class = "ttr_name"からname_of_the_movieを抽出し、td class = "td_dl"からリンクをダウンロードしたいと思います。

これは私がテーブルの行をループするために使用したコードです

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]");
}

現在私はどのようにnameNodeとlinkNodeをチェックし、その中のデータを抽出するのか分かりません

どんな助けもありがとう

よろしく

受け入れられた回答

私は今それをテストすることはできませんが、それはラインの中で何かでなければなりません:

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

人気のある回答

    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);
    }

Href Urlをすべて抽出する方法は次のとおりです。私は自分のプロジェクトの1つでその正規表現を使用しています。あなたのニーズに合わせてそれを修正し、タイトルに合わせて書き直すこともできます。私は一括でそれらを一致させる方が便利だと思います



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ