自己写的一个抓取页面email地址的小程序

媳妇的工作需要群发邮件,见她一个一个的复制粘贴,有些不忍,编写了一个邮箱批量抓取的小程序,对她的工作有些小帮助。

抓取页面的emal地址,只需要两个步骤,1,通过url地址抓取页面信息,2,从页面信息中提取emal地址。下面奉上代码;

public static string GetHtml(string url)
        {
            string html = "";
            try
            {
                WebClient MyWebClient = new WebClient();

                Encoding utf8 = Encoding.UTF8;

                Encoding defaultCode = Encoding.Default;

                MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。

                Byte[] pageData = MyWebClient.DownloadData(url);//从指定网站下载数据
                string pageHtml = Encoding.Default.GetString(pageData);
                string Encodeing = getEncoding(pageHtml);
                if (Encodeing != "GB2312" && Encodeing != "GBK")
                {
                    byte[] defaultBytes = Encoding.Convert(utf8, defaultCode, pageData);
                    pageHtml = Encoding.Default.GetString(defaultBytes);  //如果获取网站页面采用的是GB2312,则使用这句  
                }

                html = pageHtml;
            }
            catch (WebException webEx)
            {
                Console.WriteLine(webEx.Message.ToString());
            }
            return html;
        }
        public static string getEncoding(string html)
        {
            Match match = Regex.Match(html, "charset=(?'ecncoding'.*[\\d|k|K])\"");
            GroupCollection groups = match.Groups;
            string ecncoding = groups["ecncoding"].Value;
            return ecncoding.ToUpper();
        }

        protected void btnOk_Click(object sender, EventArgs e)
        {
            lstEmails.Items.Clear();
            string html = GetHtml(this.txturl.Text.Trim());
            string reg = @"[a-zA-Z0-9_\-\.]+@\w+(\.\w+)+";//匹配Email的正则表达式
            MatchCollection matchs = Regex.Matches(html, reg);foreach (Match ms in matchs)
            {
                txtEmails.Items.Add(new ListItem(ms.Value+",\r\n"));
            }
        }
GetHtml()方法用来抓取页面信息。getEncoding()获取页面编码
posted @ 2013-01-17 16:19  程序新青年  阅读(270)  评论(0编辑  收藏  举报
============================================================================== 青春匆匆,很多人都有自己的座右铭,鞭策自己前进,当没看到座右铭的时候又忘了自己要干什么,就这样天天立志,志天天立,最终还是那个初出茅庐的小菜鸟。从现在开始,慢慢去改掉懒惰的习惯。慢慢去加强学习,直到慢慢成功。==============================================================================