- ASP.NET 抓取网页内容-文字
- ASP.NET 抓取网页内容-图片
- ASP.NET 抓取网页内容-Post 数据
- ASP.NET 抓取网页内容-防止重定向
- ASP.NET 抓取网页内容-保持登录状态
- ASP.NET 抓取网页内容-把当前会话带到 WebRequest 中
利用 Post 数据成功登录服务器应用系统后,就可以抓取需要登录的页面了,那么我们就可能需要在多个 Request 间保持登录状态。
首先,我们要使用 HttpWebRequest,而不是 WebRequest。
与 WebRequest 相比,变化的代码是:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
注意:HttpWebRequest.Create 返回的类型仍是 WebRequest,所以要转化一下。
其次,使用 CookieContainer。
System.Net.CookieContainer cc = new System.Net.CookieContainer();
request.CookieContainer = cc;
request2.CookieContainer = cc;
request.CookieContainer = cc;
request2.CookieContainer = cc;
这样 request 和 request2 之间就使用了相同的 Session,如果 request 登录了,那么 request2 也是登录状态。
最后,如何在不同的页面间使用同一个 CookieContainer。
要在不同的页面间使用同一个 CookieContainer,只有把 CookieContainer 加入 Session。
Session.Add("ccc", cc); //存
CookieContainer cc = (CookieContainer)Session["ccc"]; //取
CookieContainer cc = (CookieContainer)Session["ccc"]; //取


