C#中壹般是可以利用WebClient類和WebRequest類獲取網頁源代碼 下面分別說明這兩種方法的實現
WebClient類獲取網頁源代碼
WebClient類
WebClient類位於System Net命名空間下 WebClient類提供向URI標識的任何本地 Intranet或Internet資源發送數據以及從這些資源接收數據的公***方法
源代碼
///引用命名空間
using System IO;
using System Net;
using System Text;
PageUrl = webkaka ; //需要獲取源代碼的網頁
WebClient wc = new WebClient(); // 創建WebClient實例提供向URI 標識的資源發送數據和從URI 標識的資源接收數據
wc Credentials = CredentialCache DefaultCredentials; // 獲取或設置用於對向 Internet 資源的請求進行身份驗證的網絡憑據
///方法壹
Encoding enc = Encoding GetEncoding( GB ); // 如果是亂碼就改成 utf / GB
Byte[] pageData = wc DownloadData(PageUrl); // 從資源下載數據並返回字節數組
ContentHtml Text = enc GetString(pageData); // 輸出字符串(HTML代碼) ContentHtml為Multiline模式的TextBox控件
/// 方法二
/// ***************代碼開始**********
/// Stream resStream = wc OpenRead(PageUrl); //以流的形式打開URL
/// Encoding enc = Encoding GetEncoding( GB ); // 如果是亂碼就改成 utf / GB
/// StreamReader sr = new StreamReader(resStream enc); //以指定的編碼方式讀取數據流
/// ContentHtml Text = sr ReadToEnd(); //輸出(HTML代碼) ContentHtml為Multiline模式的TextBox控件
/// resStream Close();
/// **************代碼結束********
///
wc Dispose();
WebRequest類獲取網頁源代碼
WebRequest類
WebRequest類是 NET Framework中 請求/響應 模型的abstract基類 用於訪問Internet數據 使用WebRequest類請求/響應模型的應用程序可以用協議不可知的方式從Internet請求數據 在這種方式下 應用程序處理WebRequest類的實例 而協議特定的子類則執行請求的具體細節 請求從應用程序發送到某個特定的URI 如服務器上的網頁 URI從壹個為應用程序註冊的WebRequest子類列表中確定要創建的適當子類 註冊WebRequest子類通常是為了處理某個特定的協議(如HTTP或FTP) 但是也可以註冊它以處理對特定服務器或服務器上的路徑的請求
WebRequest類中最常用的是Create方法 Create方法用於為指定的URI方案初始化新的WebRequest實例
語法
public static WebRequest Create
(
string requestUriString
)
參數
requestUriString 標識Internet資源的URI
返回值 特定URI方案的WebRequest子類
註意 Create方法將運行時確定的WebRequest類的子類作為與requestUri最接近的註冊匹配項返回 例如 當//開頭的URI在requestUri中傳遞時 由Create返回壹個HttpWebRequest 如果改為傳遞以file://開頭的URI 則Create方法將返回FileWebRequest實例 NET Framework包括//和file:// URI方案的支持
WebResponse類
WebResponse類是abstract基類 協議特定的響應類從該抽象基類派生 應用程序可以使用 WebResponse類的實例以協議不可知的方式參與請求和響應事務 而從WebResponse類派生的協議特定的類攜帶請求的詳細信息
在WebResponse類中最常用的是GetResponse方法 GetResponse方法用於當在子類中被重寫時 返回對 Internet 請求的響應
語法
public virtual WebResponse GetResponse ()
返回值 包含對Internet請求的響應的WebResponse
源代碼
///引用命名空間
using System IO;
using System Net;
using System Text;
PageUrl = ; //需要獲取源代碼的網頁
WebRequest request = WebRequest Create(PageUrl); //WebRequest Create方法 返回WebRequest的子類HttpWebRequest
WebResponse response = request GetResponse(); //WebRequest GetResponse方法 返回對 Internet 請求的響應
Stream resStream = response GetResponseStream(); //WebResponse GetResponseStream 方法 從 Internet 資源返回數據流
Encoding enc = Encoding GetEncoding( GB ); // 如果是亂碼就改成 utf / GB
StreamReader sr = new StreamReader(resStream enc); //命名空間:System IO StreamReader 類實現壹個 TextReader (TextReader類 表示可讀取連續字符系列的讀取器) 使其以壹種特定的編碼從字節流中讀取字符
ContentHtml Text = sr ReadToEnd(); //輸出(HTML代碼) ContentHtml為Multiline模式的TextBox控件
resStream Close();
lishixinzhi/Article/program/net/201311/13576