從網頁抓取數據的一般方法


首先要了解對方網頁的運行機制 ,這可以用httpwacth或者httplook來看一下http發送和接收的數據。這兩個工具應該說是比較簡單易懂的。這里就不再介紹了。主要關注的內容是header和post的內容。一般會包括cookie,Referer頁面和其他一些亂其八糟可能看不懂的變量,還有就是正常交互的參數,比如需要post或者get的querystring所包含的東西。

httplook和httpwacth 網上有很多下載的,這里推薦使用httpwach,因為可以直接嵌入到ie中,個人覺得這個比較好用。這兩個工具可以到我上傳在csdn的資源中下載,地址為

http://download.csdn.net/user/jinjazz

這里簡單給出一段可以抓取數據的c#代碼,比如登錄某個網站,獲取登錄成功后的html代碼,供數據分析使用。

private   void  login()
          {
             System.Net.WebClient wb  =   new  System.Net.WebClient();
 
             System.Collections.Specialized.NameValueCollection header  =   new  System.Collections.Specialized.NameValueCollection();
             header.Add( " Cookie " ,  " czJ_cookietime=2592000; czJ_onlineusernum=1651; czJ_sid=w4bGJd " );
             header.Add( " Referer " ,  @" http://hovertree.net/bbs/login.php " );
             wb.Headers.Add(header);
             System.Collections.Specialized.NameValueCollection data  =   new  System.Collections.Specialized.NameValueCollection();
             data.Add( " formhash " ,  " ebd2faac " );
             data.Add( " referer " ,  " http://hovertree.net/bbs/search.php " );
             data.Add( " loginfield " ,  " username " );
             data.Add( " username " ,  " jinjazz " );
             data.Add( " password " ,  " 999 " );
             data.Add( " questionid " ,  " 0 " );
             data.Add( " answer " ,  "" );
             data.Add( " cookietime " ,  " 2592000 " );
             data.Add( " loginmode " ,  "" );
             data.Add( " styleid " ,  "" );
             data.Add( " loginsubmit " ,  " 提交 " );
 
              byte [] b  =  wb.UploadValues( " http://hovertree.net/bbs/login.php " ,  " Post " , data);
              string  strData  =  System.Text.Encoding.Default.GetString(b);
             Console.WriteLine(strData);
         }

以上代碼除了三個url之外其他數據都是真實的,其中header和data中的參數和值都是用httpwatch來監測后得到。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM