使用HtmlAgilityPack从HTML中提取电子邮件

Moi*_*ysi 1 c# selectnodes html-agility-pack

如何在此HTML代码中使用HtmlAgilityPack提取电子邮件和网站地址:

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

<a class="" href="http://www.babaie.ir" target="_blank">www.babaie.ir</a>
Run Code Online (Sandbox Code Playgroud)

我尝试了这段代码,但它不适用于电子邮件:

doc.DocumentNode.SelectNodes("//a[@href= ' ' ]");
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 5

收到邮件:

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:", "");
}
Run Code Online (Sandbox Code Playgroud)

目前尚不清楚您的网站地址与其他任何锚标签的区别(此处没有特定的类或ID),因此以下代码将返回href您html中任何锚点的所有链接:

var urls = doc.DocumentNode.SelectNodes("//a[@href]")
              .Select(a => a.Attributes["href"].Value)
              .Where(href => !href.StartsWith("mailto:")) // skip emails
              .ToList();
Run Code Online (Sandbox Code Playgroud)