2

この HTML コードで HtmlAgilityPack を使用して電子メールと Web サイトのアドレスを抽出するにはどうすればよいですか。

<a class="email" href="mailto:babaie@irandoc.ac.ir">

<a class="" href="http://www.babaie.ir" target="_blank">www.babaie.ir</a>

このコードを試しましたが、電子メールでは機能しません:

doc.DocumentNode.SelectNodes("//a[@href= ' ' ]");
4

1 に答える 1

7

メールの取得:

var a = doc.DocumentNode.SelectSingleNode("//a[@class='email']");
if (a != null)
{
    string href = a.Attributes["href"].Value; // TODO: Check if href exists
    string email = href.Replace("mailto:", "");
}

Web サイトのアドレスが他のアンカー タグとどのように異なるかは明確ではありません (ここには特定のクラスや ID はありません)。そのため、次のコードはhref、html 内の任意のアンカーからのすべてのリンクを返します。

var urls = doc.DocumentNode.SelectNodes("//a[@href]")
              .Select(a => a.Attributes["href"].Value)
              .Where(href => !href.StartsWith("mailto:")) // skip emails
              .ToList();
于 2013-11-07T11:31:13.400 に答える