本文實例講述了C#使用WebClient登錄網站并抓取登錄后的網頁信息實現方法。分享給大家供大家參考,具體如下:
C#登錄網站實際上就是模擬瀏覽器提交表單,然后記錄瀏覽器響應返回的會話Cookie值,再次發送請求時帶著這個會話cookie值去請求就可以實現模擬登錄的效果了。
如下類CookieAwareWebClient實現在發送請求時都帶著cookie。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class CookieAwareWebClient : WebClient { private CookieContainer cookie = new CookieContainer(); protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base .GetWebRequest(address); if (request is HttpWebRequest) { (request as HttpWebRequest).CookieContainer = cookie; } return request; } } |
如下是模擬表單提交登錄的使用示例:
1
2
3
4
5
6
7
8
|
var client = new CookieAwareWebClient(); client.BaseAddress = @"https://hovertree.net/any/base/url/" ; var loginData = new NameValueCollection(); loginData.Add( "login" , "YourLogin" ); loginData.Add( "password" , "YourPassword" ); client.UploadValues( "login.php" , "POST" , loginData); //Now you are logged in and can request pages string htmlSource = client.DownloadString( "index.php" ); |
希望本文所述對大家C#程序設計有所幫助。