使用 WebBrowser 取得網頁原始碼
1. 問題描述
如何使用 WebBrowser 取得網頁原始碼
2. 方法
主要使用了
WebBrowser.DocumentStream 屬性 : 取得或設定資料流,其中包含 WebBrowser 控制項中所顯示的 Web 網頁內容。
WebBrowser.DocumentCompleted 事件 : 發生於 WebBrowser 控制項完成文件的載入時
程式碼
VB.NET
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
txtUrl.Text = "http://tw.yahoo.com/" ' 預設網址
End Sub
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
If txtUrl.Text <> String.Empty Then
Me.WebBrowser1.Navigate(txtUrl.Text) ' WebBrowser1 網頁載入
End If
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
' 使用 WebBrowser.DocumentStream 取得網頁內容
' 使用 StreamReader 讀入資料流,設定編碼為 Encoding.Default
Dim getReader As New System.IO.StreamReader(Me.WebBrowser1.DocumentStream, System.Text.Encoding.Default)
Dim gethtml = getReader.ReadToEnd()
Me.txtHTML.Text = gethtml
End Sub
End Class
C#
private void Form1_Load(object sender, EventArgs e)
{
txtUrl.Text = @"http://tw.yahoo.com/"; //預設網址
}
private void btnOK_Click(object sender, EventArgs e)
{
if (txtUrl.Text != String.Empty )
{
this.webBrowser1.Navigate(txtUrl.Text); // WebBrowser1 網頁載入
}
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// 使用 WebBrowser.DocumentStream 取得網頁內容
// 使用 StreamReader 讀入資料流,設定編碼為 Encoding.Default
System.IO.StreamReader getReader = new System.IO.StreamReader(this.webBrowser1.DocumentStream, System.Text.Encoding.Default);
string gethtml = getReader.ReadToEnd();
this.txtHTML.Text = gethtml;
}
執行結果
範例下載