蜘蛛程序

  private void Form1_Load(object sender, EventArgs e) {
           
            MatchCollection mc1 = Regex.Matches(this.richTextBox1.Text, @"&#[0-9]{1,};");
            foreach (Match m in mc1) {
                MessageBox.Show(m.Value);
                this.richTextBox1.Text=this.richTextBox1.Text.Replace(m.Value,ConvertToUni(m.Value));
            }
            MatchCollection mc = Regex.Matches(this.richTextBox1.Text, @"/w+([-+.']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*");
            foreach (Match m in mc) {
                MessageBox.Show(m.Value);
            }

           

          
        }

      
        private static string ConvertToUni(string str) {
            try {
                string[] asistrs = str.Split(';');
                string newstr = "";
                foreach (string asistr in asistrs) {
                    if (!asistr.Equals("")) {
                        string tmps = asistr.Remove(0, 2);
                        int asicode = int.Parse(tmps);
                        char t = (char)asicode;
                        newstr += t;
                    }
                }
                return newstr;
            }
            catch (Exception ex) {
                throw ex;
            }
        }
 

 

2006-01-26 21:31:24 动性忍心
ConvertToUni这个什么用的?

2006-01-26 21:32:02 一夜听春雨
@代表asi数字64的字符
 

2006-01-26 21:32:07 一夜听春雨
也就是@
 

2006-01-26 21:31:55 动性忍心

2006-01-26 21:32:27 一夜听春雨
把asi数字转换成字符
 

2006-01-26 21:32:31 一夜听春雨
替换进去
 

2006-01-26 21:32:27 动性忍心
好个

2006-01-26 21:32:59 一夜听春雨
先用正则表达找到&#的字符
 

2006-01-26 21:33:05 一夜听春雨
然后1个个替换掉他
 

2006-01-26 21:33:22 一夜听春雨
然后在用正则表达得到符合email格式的字符串
 

2006-01-26 21:35:08 一夜听春雨
一定要用现成组啊 否则很慢的 这点你注意了
 

2006-01-26 21:35:37 动性忍心
ok

2006-01-26 21:40:11 一夜听春雨
数据库你用sql server或者mysql吧
 

2006-01-26 21:40:31 一夜听春雨
或者干脆用XML
 

2006-01-26 21:40:36 动性忍心
好,不过我2005不会连sql2000的数据库啊

2006-01-26 21:41:07 一夜听春雨
用xml
 

2006-01-26 21:41:35 一夜听春雨
先主要功能完善了就添加把xml导出各种数据库的功能
 

2006-01-26 21:42:01 一夜听春雨
我开发了支持多数据库接口的类了这个简单的 到时候你用我的类就可以了
 



 

2006-02-07 16:49:11 动性忍心
一个页面先要抓取所有的连接和这个页面的电子邮件,然后依次蜘蛛抓取下面的连接和电子邮件,要有算法的,不然很慢啊,还有用什么取源代码比较快我用的是webclient

2006-02-07 16:49:39 动性忍心
多线程的话怎么能互相不干扰~几个线程合适

 

2006-02-07 16:52:11 一夜听春雨
先定义1个arraylist
 

2006-02-07 16:52:24 一夜听春雨
把链接放到arraylist里
 

2006-02-07 16:53:07 一夜听春雨
然后循环处理 
 

2006-02-07 16:54:22 一夜听春雨
然后把新的链接保存到1个临时的arraylist里
 

2006-02-07 16:55:33 一夜听春雨
当第一个arraylist处理完的时候把他清空把临时的arraylist加入,这样一直循环的处理,直到临时的arraylist取不到连接为止
 

2006-02-07 16:56:07 一夜听春雨
线程你要用线程组,不用取管他,他会自己分配的
 

2006-02-07 16:57:46 一夜听春雨
线程组最大现成.NET1.1里好像是25 不过你不用管的,他自己会处理的 线程不空闲的时候他会把其它任务处于等待状态,当有线程空闲的时候他会自己把新的任务加到线程池
 

 

 

你可能感兴趣的:(c#)