Extraiga correos electrónicos de HTML utilizando HtmlAgilityPack

c# html-agility-pack selectnodes

Pregunta

¿Cómo puedo extraer el correo electrónico y la dirección del sitio web utilizando HtmlAgilityPack en este código HTML:

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

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

Probé este código pero no funciona para el correo electrónico:

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

Respuesta popular

Recibir correo electrónico:

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

No está claro cómo difiere la dirección de su sitio web de otras etiquetas de anclaje (no hay ninguna clase o identificación específica aquí), por lo que el siguiente código devolverá todos los enlaces href de cualquier anclaje en su html:

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



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué