国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

數據采集程序(網頁小偷)點滴心得

2024-07-21 02:29:38
字體:
來源:轉載
供稿:網友
,歡迎訪問網頁設計愛好者web開發。 

所謂的數據采集程序也就是網頁小偷程序(大家別罵我哦),寫完了來這里發點東西,希望大家有何高見共同研究.

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.大家有什么好的建議給我留個言賽.共同進步嘛.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽阳县| 晋江市| 尉犁县| 祁连县| 吉首市| 建平县| 丰城市| 新昌县| 榆林市| 西华县| 泰和县| 临湘市| 子长县| 汝南县| 罗源县| 敦化市| 修文县| 大连市| 湘潭市| 明水县| 筠连县| 房产| 邹平县| 虎林市| 福建省| 菏泽市| 济阳县| 西峡县| 湖南省| 华池县| 酒泉市| 长宁县| 淮南市| 康保县| 延边| 微山县| 涟源市| 涟源市| 丰顺县| 大渡口区| 马边|