DOBON.NET DOBON.NETプログラミング掲示板過去ログ

WebBrowser上で表示中のHTMLソースの取得方法

環境/言語:[WindowsXP VB.NET]
分類:[.NET]

WebBrowserコントロール上で表示しているHTMLのソースコードの取得方法が分かりません。
クッキーを利用しているページですので、WebRequestでは、取得できませんでした。
ググったりしてみたのですが、それらしいものが見つかりません。
もし、ご存知の方がいらっしゃいましたらご指導お願いします。
> クッキーを利用しているページですので、WebRequestでは、取得できませんでした。

 こちらの Tips で紹介されている内容では対応できないということでしょうか?

Cookieを使ってファイルをダウンロードし表示する
http://dobon.net/vb/dotnet/internet/usecookie.html


> ググったりしてみたのですが、それらしいものが見つかりません。

 どういった条件で検索したのでしょう? 参考になりそうなものは沢山あると思うのですが。

http://www.google.co.jp/search?hl=ja&c2coff=1&q=WebBrowser+HTML+%E5%8F%96%E5%BE%97&lr=lang_ja
>  こちらの Tips で紹介されている内容では対応できないということでしょうか?
>
> Cookieを使ってファイルをダウンロードし表示する
> http://dobon.net/vb/dotnet/internet/usecookie.html

POSTデータとクッキー両方を使っているHTMLで、ここのTipsにあるサンプルを両方付けてみたんですが、うまくいきません…。
もし、二つを合致させるとなるとどのようにすればいいでしょうか?

'文字コードを指定する
Dim enc As System.Text.Encoding = _
System.Text.Encoding.GetEncoding("euc-jp")

'POST送信する文字列を作成
Dim postData As String = "name=" & strName & "&mail=" & strMail
'バイト型配列に変換
Dim postDataBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(postData)

'WebRequestの作成
Dim webreq As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)

'WebRequestの作成
'Dim req As System.Net.WebRequest = System.Net.WebRequest.Create(url)
'メソッドにPOSTを指定
webreq.Method = "POST"
'ContentTypeを"application/x-www-form-urlencoded"にする
'POSTの場合は通常"application/x-www-form-urlencoded"を使う
webreq.ContentType = "application/x-www-form-urlencoded"
'POST送信するデータの長さを指定
webreq.ContentLength = postDataBytes.Length

'CookieContainerプロパティを設定する
webreq.CookieContainer = New System.Net.CookieContainer
'要求元のURIに関連したCookieを追加し、要求に使用する
webreq.CookieContainer.Add(cContainer.GetCookies(webreq.RequestUri))

'サーバーからの応答を受信するためのWebResponseを取得
'Dim webres As System.Net.HttpWebResponse = CType(webreq.GetResponse(), System.Net.HttpWebResponse)

'受信したCookieのコレクションを取得する
Dim cookies As System.Net.CookieCollection = webreq.CookieContainer.GetCookies(webreq.RequestUri)
'Cookie名と値を列挙する
Dim cook As System.Net.Cookie
For Each cook In cookies
Console.WriteLine("{0}={1}", cook.Name, cook.Value)
Next cook
'取得したCookieを保存しておく
cContainer.Add(cookies)

''データをPOST送信するためのStreamを取得
Dim reqStream As System.IO.Stream = webreq.GetRequestStream()
''送信するデータを書き込む
'reqStream.Write(postDataBytes, 0, postDataBytes.Length)
'reqStream.Close()

'応答データを受信するためのStreamを取得
'Dim st As System.IO.Stream = webres.GetResponseStream()
'送信するデータを書き込む
reqStream.Write(postDataBytes, 0, postDataBytes.Length)
Dim sr As New System.IO.StreamReader(reqStream, enc)
'受信して表示
Dim html As String = sr.ReadToEnd()
'閉じる
sr.Close()

こんな感じでひっつけていますが動作しません。
いろいろ試して解決できました
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板