IEの操作:Webbrowserを使い、URLを開きWebページのソースを取得(DocumentStream)

VB2008でサイトのソースを取得する実行例サンプルです。

IE(インターネットエクスプローラ)の操作へ



■実行画面
「Button1」ボタンをクリックすると、サイトのTopページが開きます。
そして、サイトのソースを適切な文字コードに変換し下のテキストボックスに表示しています。
Webページのソースを表示するフォーム

フォームにWebbrowserコントロールとテキストボックスを設置しています。
テキストボックスは、Multiline を True にし、ScrollBars を BOTH にしています。
実行手順は
1)Navigateに開くURLを指定します。
2)開くまでループで待ちます。
  Webbrowserは開くと、DocumentCompletedイベントが発生するので、イベントが発生しフラッグがTRUEになるまでループします。
3)str = System.Text.Encoding.GetEncoding(WebBrowser1.Document.Encoding).GetString(buff) で文字コードを変換します。
  変換しないと文字化けする場合があります。
  しかし、このように行っても文字化けする場合があります。
4)変換結果をテキストボックスに表示します。

■実行コード

Public Class Form1

Private webcompflag As Boolean


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WebBrowser1.Navigate("http://www.feedsoft.net/vb/")
webcompflag = False
Do While (webcompflag = False)
System.Windows.Forms.Application.DoEvents()
System.Threading.Thread.Sleep(10)
Loop

'ページのソースを表示
Dim buff(WebBrowser1.DocumentStream.Length - 1) As Byte
Dim str As String
WebBrowser1.DocumentStream.Read(buff, 0, WebBrowser1.DocumentStream.Length)
str = System.Text.Encoding.GetEncoding(WebBrowser1.Document.Encoding).GetString(buff)
'テキストボックスに表示
TextBox1.Text = str
End Sub

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
webcompflag = True
End Sub

End Class


Visual Basic 2008 Express Edition実践入門