IEの操作:Webbrowserを使い、URLを開きWebページのソースを取得(DocumentStream)VB2008でサイトのソースを取得する実行例サンプルです。IE(インターネットエクスプローラ)の操作へ■実行画面 「Button1」ボタンをクリックすると、サイトのTopページが開きます。 そして、サイトのソースを適切な文字コードに変換し下のテキストボックスに表示しています。 フォームに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実践入門 |