【问题标题】:Extract emails from HTML by using HtmlAgilityPack使用 HtmlAgilityPack 从 HTML 中提取电子邮件
【发布时间】:2013-11-07 11:13:43
【问题描述】:

如何在此 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= ' ' ]");

【问题讨论】:

标签: c# html-agility-pack selectnodes


【解决方案1】:

获取电子邮件:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 2011-08-24
    • 2021-12-23
    • 2016-04-12
    相关资源
    最近更新 更多