数据采集程序(网页小偷)点滴心得

所谓的数据采集程序也就是网页小偷程序(大家别骂我哦),写完了来这里发点东西,希望大家有何高见共同研究.

1.在下载 数据的开始,有些网站是要登录了才能看到相应的数据,这个就需要 我们 发送登录用户名和密码了,但我是登录了,但他服务器也不是垃圾,在他那里重定向了,共产生了2个SESSION,这第2个SESSION我就不知道如何捕抓.于是我就投机^-^,用软件将SESSION捕抓下来了1个叫Ethereal的软件,用以下代码加入到HTTP请求的头部 WebClient myWebClient = new WebClient(); string sessionkey=textBox78.Text;      string refererurl=textBox77.Text;      myWebClient.Headers.Clear();          myWebClient.Headers.Add("Cookie",sessionkey);      myWebClient.Headers.Add("Referer", refererurl);      myWebClient.Headers.Add("User-agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3"); 这样就欺骗了服务器了,哈哈

2.第二部就是代码下载 byte[] myDataBuffer = myWebClient.DownloadData(remoteUri);  download = Encoding.Default.GetString(myDataBuffer);

3.第3部就是数据的匹配了,我是将流读取到数据里,然后用IndexOf得到2个关键字段的位置,然后用Substring取出来的,我知道这很笨,但用正则表达式难啊(谁会的指点我下),匹配完了得到的字符串我就用以下的函数去掉了HTML代码: private string StripHTML(string strHtml)   {    string [] aryReg ={           @"<script[^>]*?>.*?</script>",           @"<(///s*)?!?((/w+:)?/w+)(/w+(/s*=?/s*(([""'])(//[""'tbnr]|[^/7])*?/7|/w+)|.{0})|/s)*?(///s*)?>",           @"([/r/n])[/s]+",           @"&(quot|#34);",           @"&(amp|#38);",           @"&(lt|#60);",           @"&(gt|#62);",           @"&(nbsp|#160);",           @"&(iexcl|#161);",           @"&(cent|#162);",           @"&(pound|#163);",           @"&(copy|#169);",           @"&#(/d+);",           @"-->",           @"<!--.*/n"                  };

   string [] aryRep = {            "",            "",            "",            "/"",            "&",            "<",            ">",            " ",            "/xa1",//chr(161),            "/xa2",//chr(162),            "/xa3",//chr(163),            "/xa9",//chr(169),            "",            "/r/n",            ""           };

   string newReg =aryReg[0];    string strOutput=strHtml;    for(int i = 0;i<aryReg.Length;i++)    {     Regex regex = new Regex(aryReg[i],RegexOptions.IgnoreCase );     strOutput = regex.Replace(strOutput,aryRep[i]);       }

   strOutput.Replace("<","");    strOutput.Replace(">","");    strOutput.Replace("/r/n","");

   return strOutput;   }

4.到了后面就是入库了,这个大家都懂了吧.但是我还有点问题就是,在我写数据的时候,出了EXCEPTION,说我的字段太长了,不能写进到数据库,我用的是Access,我试验下用SQL吧.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值