读书人

大家过来帮帮忙 有过网页抓取邮箱经验

发布时间: 2012-05-11 12:55:37 作者: rapoo

大家过来帮帮忙 有过网页抓取邮箱经验 正则厉害的热烈欢迎
最近闲着没事写了个爬虫,title,meta,正文都能用正则比较好的析取
但是在析取邮箱的时候出现不能正确的析取,
正则表达式及详细代码如下:
除了用正则还有其他什么好办法可以提取邮箱吗

C# code
    private static string RegExprEmail = @"(mailto\:|contact\=)?(?<1>[^\@\s]{1,}\@(?:[^\s\.]{1,}\.){1,}(?:[a-z]{2,4}\.?){1,2})";    private static Regex RegExFindEmail = new Regex(RegExprEmail,RegexOptions.IgnoreCase|RegexOptions.Multiline);    E_Mail email = new E_Mail();//自己定义的E_Mail类        for (Match n = RegExFindEmail.Match(html); n.Success; n = n.NextMatch())        {            email.Email = n.Groups["1"].Value.Trim();            email.Mark = false;            if (!Email_Exist(email.Email))            {                email.Url = father_url.Get_url_link().ToString();                for (int i = 0; i < Common.KeyWord.Length; i++)                {                    if (html.Contains(Common.KeyWord[i]))                    {                        email.Mark = true;                        break;                    }                }                Common.Email_List.Add(email);//这个是一个类public static IList<E_Mail> Email_List=new List<E_Mail>();                  }


[解决办法]
因为不知道你具体内容,如果邮箱前后都有固定字符的话,还可以遍历找,比如你先找到 mailto ,然后找@,然后找到结束字符,你就根据这几个位置取内容(substring)

读书人网 >C#

热点推荐