首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

大家过来帮帮忙 有过网页抓取邮箱经验 正则厉害的热烈欢迎解决方案

2012-05-11 
大家过来帮帮忙 有过网页抓取邮箱经验 正则厉害的热烈欢迎最近闲着没事写了个爬虫,title,meta,正文都能用

大家过来帮帮忙 有过网页抓取邮箱经验 正则厉害的热烈欢迎
最近闲着没事写了个爬虫,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)

热点排行