[C#][VB.NET]使用 WebBrowser 取得網頁原始碼

  • 70684
  • 0
  • 2010-08-02

使用 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;
        }

 

執行結果

image

 

範例下載

[VB.NET]取得網頁原始碼.rar