手机
当前位置:查字典教程网 >编程开发 >C#教程 >c# HttpWebRequest通过代理服务器抓取网页内容应用介绍
c# HttpWebRequest通过代理服务器抓取网页内容应用介绍
摘要:内网用户或代理上网的用户使用复制代码代码如下:usingSystem.IO;usingSystem.Net;publicstringget_...

内网用户或代理上网的用户使用

复制代码 代码如下:

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]);

//}

}

大家知道,用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通过代理服务器抓取网页内容应用介绍】相关文章:

c#设计模式 适配器模式详细介绍

c# 获取网页中指定的字符串信息的实例代码

C#获取进程的主窗口句柄的实现方法

C#的WebBrowser的操作与注意事项介绍

C#基础:基于const与readonly的深入研究

C# TrieTree介绍及实现方法

关于c#中枚举类型支持显示中文的扩展说明

C#实现通过程序自动抓取远程Web网页信息的代码

Http上传与Ftp上传的区别详解

C#键值对容器的介绍

精品推荐
分类导航