c#利用WebClient和WebRequest獲取網頁原始碼
C#中一般是可以利用WebClient類和WebRequest類獲取網頁原始碼。下面分別說明這兩種方法的實現。
WebClient類獲取網頁原始碼
WebClient類
WebClient類位於System.Net名稱空間下,WebClient類提供向URI標識的任何本地、Intranet或Internet資源傳送資料以及從這些資源接收資料的公共方法。
原始碼
///引用名稱空間
using System.IO;
using System.Net;
using System.Text;
PageUrl = "http://www.webkaka.com"; //需要獲取原始碼的網頁
WebClient wc = new WebClient(); // 建立WebClient例項提供向URI 標識的資源傳送資料和從URI 標識的資源接收資料
wc.Credentials = CredentialCache.DefaultCredentials; // 獲取或設定用於對向 Internet 資源的請求進行身份驗證的網路憑據。
///方法一:
Encoding enc = Encoding.GetEncoding("GB2312"); // 如果是亂碼就改成 utf-8 / GB2312
Byte[] pageData = wc.DownloadData(PageUrl); // 從資源下載資料並返回位元組陣列。
ContentHtml.Text = enc.GetString(pageData); // 輸出字串(HTML程式碼),ContentHtml為Multiline模式的TextBox控制元件
/// 方法二:
/// ***************程式碼開始**********
/// Stream resStream = wc.OpenRead(PageUrl); //以流的形式開啟URL
/// Encoding enc = Encoding.GetEncoding("GB2312"); // 如果是亂碼就改成 utf-8 / GB2312
/// 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最接近的註冊匹配項返回。例如,當以http://開頭的URI在requestUri中傳遞時,由Create返回一個HttpWebRequest。如果改為傳遞以file://開頭的URI,則Create方法將返回FileWebRequest例項。.NET Framework包括對http://和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 = "http://www.2cto.com "; //需要獲取原始碼的網頁
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("GB2312"); // 如果是亂碼就改成 utf-8 / GB2312
StreamReader sr = new StreamReader(resStream, enc); //名稱空間:System.IO。 StreamReader 類實現一個 TextReader (TextReader類,表示可讀取連續字元系列的讀取器),使其以一種特定的編碼從位元組流中讀取字元。
ContentHtml.Text = sr.ReadToEnd(); //輸出(HTML程式碼),ContentHtml為Multiline模式的TextBox控制元件
resStream.Close();
sr.Close();
WebClient類獲取網頁原始碼
WebClient類
WebClient類位於System.Net名稱空間下,WebClient類提供向URI標識的任何本地、Intranet或Internet資源傳送資料以及從這些資源接收資料的公共方法。
原始碼
///引用名稱空間
using System.IO;
using System.Net;
using System.Text;
PageUrl = "http://www.webkaka.com"; //需要獲取原始碼的網頁
WebClient wc = new WebClient(); // 建立WebClient例項提供向URI 標識的資源傳送資料和從URI 標識的資源接收資料
wc.Credentials = CredentialCache.DefaultCredentials; // 獲取或設定用於對向 Internet 資源的請求進行身份驗證的網路憑據。
///方法一:
Encoding enc = Encoding.GetEncoding("GB2312"); // 如果是亂碼就改成 utf-8 / GB2312
Byte[] pageData = wc.DownloadData(PageUrl); // 從資源下載資料並返回位元組陣列。
ContentHtml.Text = enc.GetString(pageData); // 輸出字串(HTML程式碼),ContentHtml為Multiline模式的TextBox控制元件
/// 方法二:
/// ***************程式碼開始**********
/// Stream resStream = wc.OpenRead(PageUrl); //以流的形式開啟URL
/// Encoding enc = Encoding.GetEncoding("GB2312"); // 如果是亂碼就改成 utf-8 / GB2312
/// 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最接近的註冊匹配項返回。例如,當以http://開頭的URI在requestUri中傳遞時,由Create返回一個HttpWebRequest。如果改為傳遞以file://開頭的URI,則Create方法將返回FileWebRequest例項。.NET Framework包括對http://和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 = "http://www.2cto.com "; //需要獲取原始碼的網頁
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("GB2312"); // 如果是亂碼就改成 utf-8 / GB2312
StreamReader sr = new StreamReader(resStream, enc); //名稱空間:System.IO。 StreamReader 類實現一個 TextReader (TextReader類,表示可讀取連續字元系列的讀取器),使其以一種特定的編碼從位元組流中讀取字元。
ContentHtml.Text = sr.ReadToEnd(); //輸出(HTML程式碼),ContentHtml為Multiline模式的TextBox控制元件
resStream.Close();
sr.Close();
相關文章
- [轉帖]利用WebClient和WebRequest類獲得網頁原始碼Webclient網頁原始碼
- QWebView獲取網頁原始碼WebView網頁原始碼
- 高效獲取網頁原始碼COM網頁原始碼
- Delphi自動提交網頁表單和獲取框架網頁原始碼網頁框架原始碼
- C#獲取HTML原始碼C#HTML原始碼
- 獲取含跨域網址的框架網頁的原始碼跨域框架網頁原始碼
- 使用WebBrowser控制元件獲取網頁原始碼的方法Web控制元件網頁原始碼
- 想獲取JS載入網頁的源網頁的原始碼,不想獲取JS載入後的資料JS網頁原始碼
- 利用js獲取當前頁面的域名程式碼JS
- Delphi獲取所有開啟的IE視窗的網頁原始碼網頁原始碼
- 獲取AOSP原始碼原始碼
- webview獲取網頁titleWebView網頁
- iOS專案開發實戰——使用同步請求獲取網頁原始碼iOS網頁原始碼
- JavaScript 獲取網頁尾本程式碼內容JavaScript網頁
- iOS專案開發實戰——iOS網路程式設計獲取網頁Html原始碼iOS程式設計網頁HTML原始碼
- HarmonyOS原始碼獲取大全原始碼
- javascript獲取網頁的高度JavaScript網頁
- .net post提交和獲得html頁面的原始碼HTML原始碼
- C#—獲取網路時間C#
- python3中編碼如何獲取網頁?Python網頁
- js獲取網頁title標題程式碼例項JS網頁
- 兩種方法獲取網頁編碼python版網頁Python
- 利用XMLHTTP 從其他頁面獲取資料 (轉)XMLHTTP
- c#獲取word檔案頁數、字數C#
- iOS專案開發實戰——使用非同步請求獲取網頁HTML原始碼iOS非同步網頁HTML原始碼
- 獲取openjdk10原始碼JDK原始碼
- js/jq 獲取網頁寬高JS網頁
- Python 3.2 獲取中文網頁Python網頁
- js如何獲取網頁尾本程式碼的內容JS網頁
- iOS專案開發實戰——獲取網頁原始碼的二進位制資料iOS網頁原始碼
- javascript獲取網頁和螢幕尺寸相關屬性JavaScript網頁
- 利用PHP獲取一個頁面上的連結資訊PHP
- C#獲取IP和主機名C#
- Flutter原始碼剖析(一):原始碼獲取與構建Flutter原始碼
- 爬取外文工業技術期刊網頁原始碼(自用)網頁原始碼
- js如何獲取網頁的標題JS網頁
- js獲取網頁螢幕寬高JS網頁
- 深入 Nodejs 原始碼探究 CPU 資訊的獲取與利用率計算NodeJS原始碼