C# 如何通过html Agility Pack 2获取电子邮件地址

C# 如何通过html Agility Pack 2获取电子邮件地址,c#,javascript,html-agility-pack,selectnodes,C#,Javascript,Html Agility Pack,Selectnodes,如何从网站获取电子邮件地址 我试着从一个似乎受到JavaScript保护的网站上抓到一封电子邮件 以下是HTML代码: <p class="email"> <a href="mailto:info@aryanaz.ir" class="email"> info@aryanaz.ir <script type="text/javascript"> /* <![CDATA[ */ (function(){try{var s,a,i,j,r,c,l,b

如何从网站获取电子邮件地址

我试着从一个似乎受到JavaScript保护的网站上抓到一封电子邮件

以下是HTML代码:

<p class="email">
<a href="mailto:info@aryanaz.ir" class="email">
    info@aryanaz.ir
<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script></a>
</p>

这是您在网站上点击“查看源代码”时看到的脚本,还是使用web inspector(或类似工具)查看最终html时看到的脚本?如果这是最终的html,HTMLAgilityPack将不会帮助您,因为它无法为您执行javascript。是的,我使用Web Inspector找到它。你是说我不能通过HTMLAGLITYPACK收到电子邮件?我怎样才能收到电子邮件?有什么想法吗?我可以得到显示在标记和脚本标记开头之间的电子邮件吗info@aryanaz.irYou无法获取使用带有HtmlAlityPack的javascript编码的电子邮件。首先,您需要某种方法来执行javascript(您可以查看Awesomium、PhantomJS或其他无头浏览器),在这种情况下,电子邮件地址不会无缘无故地混淆。根据网站所有者的意愿对网站进行爬网以收集电子邮件地址(因为在这种情况下,他们可以提供更好的方式向您发送地址)是违反隐私法的。
              HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
  var Email = from HtmlNode n in doc.DocumentNode.SelectNodes("//a[contains(@href, 'mailto:')]")
                              select n;
                foreach (HtmlNode node in Email )
                {
                    string email = node.InnerHtml.Trim();

                    if (node.InnerHtml.Trim() != "")
                    {
                        ClassBase.ENonQuery("addfullvalueemail ", System.Data.CommandType.StoredProcedure, new SqlParameter[]
            {
                  new SqlParameter("@Email ",email ),                  

            });
                    }
                }