C#用HttpWebRequest通过代理服务器验证后抓取网页内容
2014-01-09 18:36:57 By: shinyuu
一、内网用户或代理上网的用户使用、代码如下
using System.IO; using System.Net; public string get_html() { string urlStr = "http://www.domain.com"; //設定要獲取的地址 HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(urlStr); //建立HttpWebRequest對象 hwr.Timeout = 60000; //定義服務器超時時間 WebProxy proxy = new WebProxy(); //定義一個網關對象 proxy.Address = new Uri("http://proxy.domain.com:3128"); //網關服務器:端口 proxy.Credentials = new NetworkCredential("f3210316", "6978233"); //用戶名,密碼 hwr.UseDefaultCredentials = true; //啟用網關認証 hwr.Proxy = proxy; //設置網關 try { HttpWebResponse hwrs = (HttpWebResponse)hwr.GetResponse(); //取得回應 } catch { MessageBox.Show("无法连接代理!"); return; } //判断HTTP响应状态 if(hwrs.StatusCode != HttpStatusCode.OK) { MessageBox.Show("访问失败!"); hwrs.Close(); return; } else { Stream s = hwrs.GetResponseStream(); //得到回應的流對象 StreamReader sr = new StreamReader(s, Encoding.UTF8); //以UTF-8編碼讀取流 StringBuilder content = new StringBuilder(); // while (sr.Peek() != -1) //每次讀取一行,直到 { //下一個字節沒有內容 content.Append(sr.ReadLine()+""r"n"); //返回為止 } // //return content.ToString() ; } //输出所有的Header(当然包括服务器输出的Cookie) //for(int ii=0;ii<hwrs.Headers.Count;ii++) //{ // MessageBox.Show(hwrs.Headers.GetKey(ii)+":"+res.Headers[ii]); //} }
二、C#用HttpWebRequest通过代理服务器验证后抓取网页内容
大家知道、用HttpWebRequest可以通过Http对网页进行抓取、但是如果是内网、而且是通过代理上网的用户、如果直接进行操作是行不通的、那有没有什么办法呢?
当然有、呵呵、见以下代码
string urlStr = "http://www.domain.com"; //設定要獲取的地址 HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(urlStr); //建立HttpWebRequest對象 hwr.Timeout = 60000; //定義服務器超時時間 WebProxy proxy = new WebProxy(); //定義一個網關對象 proxy.Address = new Uri("http://proxy.domain.com:3128"); //網關服務器:端口 proxy.Credentials = new NetworkCredential("f3210316", "6978233"); //用戶名,密碼 hwr.UseDefaultCredentials = true; //啟用網關認証 hwr.Proxy = proxy; //設置網關 HttpWebResponse hwrs = (HttpWebResponse)hwr.GetResponse(); //取得回應 Stream s = hwrs.GetResponseStream(); //得到回應的流對象 StreamReader sr = new StreamReader(s, Encoding.UTF8); //以UTF-8編碼讀取流 StringBuilder content = new StringBuilder(); // while (sr.Peek() != -1) //每次讀取一行,直到 { //下一個字節沒有內容 content.Append(sr.ReadLine()+""r"n"); //返回為止 } // return content.ToString() ; //返回得到的字符串
以上就是使用C#用HttpWebRequest通过代理服务器验证后抓取网页内容、是不是很简单呀
若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力
想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)
或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)
如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教
为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛