Skip to main content
 首页 » 编程设计

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

2024年02月01日32kenshinobiy

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

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

请您参考如下方法:

获取电子邮件:

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

目前尚不清楚您的网站地址与任何其他 anchor 标记有何不同(此处没有特定的类或 id),因此以下代码将返回来自您 html 中任何 anchor 的所有 href 链接:

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