网络软件 系统工具 应用软件 图形图像 多媒体类 免费游戏 安全相关 免费音乐 网页素材 电子书籍 考试考题 建站源码
教育教学 多媒体类 编程开发 操作系统 游戏天地 娱乐天地 简历求职 站长专区 网页设计 安全技术 图形图像 文学驿站
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网页设计 | 技术开发 | 专栏
当前位置:热点网络学院技术开发ASP 学院ASP实例数据采集程序(网页小偷)点滴心得
精品推荐
热点TOP10
·一个18位身份证校验计算函数
·实现有管理功能的ASP留言板
·如何利用ASP把图片上传到数据库
·用ASP随机产生随机数
·数据采集程序(网页小偷)点滴心得
·利用ASP生成EXECL文档
·asp.net上传图片并同时生成缩略图
·多表单域无组件文件上传的例子
·一段防注入的通用脚本
·一个的无组件上传的ASP代码
·用ASP将数据读数导出EXCEL文件的四种方法
·用ASPJPEG组件制作图片的缩略图和加水印
·ASP.NET超时设置
·ASP实现多域名同一空间的处理实例
·ASP 编程中20个非常有用的例子
·用asp实现QQ挂机
·DVBBS上传ASP文件漏洞详解
·用ASP动态生成JS表单验证代码
·禁用html页面的缓存
·一个简单的asp数据库操作类
数据采集程序(网页小偷)点滴心得
日期:2006年4月24日 作者: 查看:[大字体 中字体 小字体]

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

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吧.

5.大家有什么好的建议给我留个言赛.共同进步嘛.

出处:http://jetadv.cnblogs.com/archive/2006/02/18/333213.html

(出处:http://www.xmsc.com.cn

关于我们 | 帮助(?) | 版权声明 | 友情连接 
Copyright 2005-2005 xmsc.com.cn All Rights Reserved.
Powered by:mesky