Webページからいろいろ抜き出して表示したりしたい。 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 LOTUS  (社会人) 投稿日時 2011/2/8 21:24:08
度々すみません

自己解決しました
投稿者 LOTUS  (社会人) 投稿日時 2011/2/8 21:22:53
Dim r As New System.Text.RegularExpressions.Regex( _
            "<body>(.*?)</body>", _
            System.Text.RegularExpressions.RegexOptions.IgnoreCase)

        'TextBox1.Text内で正規表現と一致する対象を1つ検索  
        Dim m As System.Text.RegularExpressions.Match = r.Match(TextBox1.Text)

        '次のように一致する対象をすべて検索することもできる  
        'Dim mc As System.Text.RegularExpressions.MatchCollection = _ 
        '    r.Matches(TextBox1.Text) 


        While m.Success
            '一致した対象が見つかったときキャプチャした部分文字列を表示  
            MessageBox.Show(m.Value)
            '次に一致する対象を検索  
            m = m.NextMatch()
        End While


このコードで無事抜き出せました。
質問なのですが、正規表現における(.*?)とはどういう意味でしょうか。
投稿者 LOTUS  (社会人) 投稿日時 2011/2/8 20:58:01
Webbrowserを非表示で使う場合VisibleをFalseにするだけでいいのでしょうか。
無駄が多い感じがするのですが・・・

とりあえずソースの取得はYASさんのかげで簡単にできました。

Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = WebBrowser1.Document.Body.OuterHtml
    End Sub


こんな感じでテキストボックスに表示できました。
DOMとはなんでしょうか。
しらべてもjavascript関連しかヒットしません・・・
投稿者 YAS  (社会人) 投稿日時 2011/2/7 23:43:30
>取得したソースコードの中から<body>~</body>を抜き出す場合どうすればいいんでしょうか。 

非表示のWebBrowserで読み込んでから,DOMから取得してみてはどうでしょうか。
投稿者 LOTUS  (社会人) 投稿日時 2011/2/7 22:41:22
どうやらここからはWeb関係ないみたいですね。
取得したソースコードの中から<body>~</body>を抜き出す場合どうすればいいんでしょうか。
投稿者 LOTUS  (社会人) 投稿日時 2011/2/7 22:21:55
少しわかりました。

    Dim URL As String = TextBox1.Text
    Dim wc As WebClient = New WebClient()

    Dim st As Stream = wc.OpenRead(URL)

    Dim enc As Encoding = Encoding.GetEncoding("Shift_JIS")
    Dim sr As StreamReader = new StreamReader(st, enc)
    Dim html As string = sr.ReadToEnd()
    sr.Close()

    st.Close()


これでTextBox1のソースコードが取得できるみたいです。
取得した後そのコードをいろいろ弄るようにしたいです。
投稿者 LOTUS  (社会人) 投稿日時 2011/2/7 21:22:31
VB中学校様にはいつもお世話になっております。
初級講座を大体抑えたのでそろそろ新しいステップへ踏み出したいな、と思っていました。
そこで思いついたのが「Webページを弄る」ことでした。

例えば教えてgoo のようなサイトで置き換えると

1.URLを入力
2.質問内容と回答内容を取得
3.それぞれTextboxに出力

のようなことをしたいです。
こういった一例に限らず、VBにおけるWeb関連の構文等を詳しく勉強するためにはどのような書籍・サイトあるいはその他があるでしょうか。

稚拙で長々しい文章ではご回答よろしくお願いします。