這篇文章主要介紹了C#使用WebClient登入網站並抓取登入後的網頁資訊實現方法,涉及C#基於會話操作登陸網頁及頁面讀取相關操作技巧,需要的朋友可以參考下
本文執行個體講述了C#使用WebClient登入網站並抓取登入後的網頁資訊實現方法。分享給大家供大家參考,具體如下:
C#登入網站實際上就是類比瀏覽器提交表單,然後記錄瀏覽器響應返回的會話Cookie值,再次發送請求時帶著這個會話cookie值去請求就可以實現類比登入的效果了。
如下類CookieAwareWebClient實現在發送請求時都帶著cookie。
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; }}
如下是類比表單提交登入的使用樣本:
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 pagesstring htmlSource = client.DownloadString("index.php");