• 締切済み

WebBrowserに映されたページのhtml文獲得方法

WebBrowserでナビゲートしたページのHTML文(ソース)をtextボックスに表示させたいのですが、出来なくて困っています。 text1.Text = inet1.OpenURL (★)  ★=表示させたいURL という事まではわかったのですが、WebBrowser1のURLの引渡し方法がわかりません! 教えてください!!おねがいします。

noname#183200
noname#183200

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

↓によるとWebBrowserだけで出来るそうな。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=352290
回答No.2

WebBrowser1.Navigate "http://www.okweb.ne.jp" が読込みを完了しないと、エラーになるみたいです。 試しにコマンドボタンを2個用意して、 コマンドボタン1を押して、少ししてから、コマンドボタン2を押してみてください。 Private Sub Command1_Click() WebBrowser1.Navigate "http://www.okweb.ne.jp" end sub Private Sub Command2_Click() Text2.Text = WebBrowser1.LocationURL Text1.Text = Inet1.OpenURL(WebBrowser1.LocationURL) End Sub 1つのコマンドボタンでの方法も考えてみようと思ったのですが、 WebBrowser1.Navigate "http://www.okweb.ne.jp" で、URLを持っていますよね? Private Sub Command1_Click() DIM URLString As String URLString = "http://www.okweb.ne.jp" WebBrowser1.Navigate URLString Text2.Text = WebBrowser1.LocationURL Text1.Text = Inet1.OpenURL(URLString) End Sub では、だめなのでしょうか? もし、何か理由があるようなら補足してください。

回答No.1

WebBrowser1からURLを取り出したいという事でしょうか? WebBrowser1.LocationURL でとれませんか?

noname#183200
質問者

補足

ご回答ありがとうございます。この方法(下のソース)は以前から試していたのですが、”URLが不正です”というエラーがててしまいます。なぜでしょうか? Private Sub Command1_Click() WebBrowser1.Navigate "http://www.okweb.ne.jp" Text2.Text = WebBrowser1.LocationURL Text1.Text = Inet1.OpenURL(WebBrowser1.LocationURL) End Sub

関連するQ&A

  • WebBrowserでHtmlを取得

    WebBrowserでHtmlを取得する方法をおしえてください フォーム上に、WebBrowser1、TextBox1、Button1を配置しています。 TextBox1にHtmlを表示し、Button1は、WebBrowser1に表示している WEBページを更新します。 やりたい事  (1)フォームを開いた時に、URLで指定したWEBページを表示させ   TextBox1にHtmlを表示させる。  (2)Button1をクリックした時、表示しているWEBページを更新する。   更新後のHtmlをTextBox1に表示させる。  (3)TextBox1の表示が完了したらHtmlを処理する。(未着手) 現在、(1)は動作するのですが、(2)が動作しません(TextBox1のHtmlが更新されない) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate(オッズURL):webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = "" If Not WebBrowser1.Url.Equals("about:blank") Then WebBrowser1.Refresh() : webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub 何がいけないのか分かりません よろしくお願いします。

  • WebBrowserにHTMLテキストを読み込ませる。

    お世話になります。 VBには、WebBrowserコントロールというものがありますが、これで次のようなことは出来ないのでしょうか。 それは、まず、リッチテキストボックス(もしくは普通のテキストボックス)に、 HTMLを書いていきます。 そして、ボタンを押すとWebBrowserが乗ったフォームが出てきて、テキストを読み込んでそれをHTMLファイルとして表示させる。 というものです。 色々試してみましたが、上手くいきません。 一旦どこかに一時的にファイルを保存させてそれを読み込ませる……というのも考えたのですが、直接テキストから読めればコードが単純になるので、もし出来るのなら直接読ませたいのです。 どなたか方法を知っていたら、ぜひお教えください。お願いします。 --------- 開発環境 VB6.0SP5 WinME

  • webbrowserに表示させたページのリンクをクリックしたい。

    お世話になります。 vb2005でウェブブラウザにページを表示させて webbrowser1.navigate("http://yahoo.co.jp") 5番目のURLをクリックさせるのはどうすればいいでしょうか? 教えてください。お願いします。

  • WebBrowserでAタグ取得

    VB9でWebBrowserを使ってホームページにアクセスしているのですが、 そのページにある全てのAタグのURLとAタグの表示テキストを取得したいのですが、どのようにすれば良いでしょうか? WebBrowser1.Navigate(URL) ...待ち 受信完了 ここまではできています。 この後のAタグを取得するコードが知りたいです。

  • WebBrowserのURLプロパティについて

    質問です。 ある某サイトの画像取得するプログラムを作ってるのですが、 検索しても出てこないのでここで質問させて頂きます。 最初に[TextBox1] と[TextBox2]が二つあります。 そしてそのテキストボックスにはURLの ../585dDws/ ←等の文字列を入れて それをWebBrowserで取得して読み込みを行いたいのですが、 WebBrowser2.Navigate(New Uri("http://www.*****.jp" + TextBox1.Text + ":" + TextBox2.Text + "/index.html")) 及び WebBrowser2.url(New Uri の方も読み込みました。が無理です。 でButtonを押しても WebBrowser 内は真っ白で読み取ってくれません。 どの様にすれば詠み込んでくれるのでしょうか? 「+」と「&」等も変更してみましたが無理でした。

  • WebBrowserにてsubmitの前にnavigateしてしまう

    いつもお世話になっております。 VB2005ユーザーです。 WebBrowser内の"submit"を押したあと、違うページに行きたいのですが、 "submit"を押す前に"Navigate"で指定しているページに行ってしまいます。 このようなコードを書いています。 With WebBrowser1 .Navigate("最初のURL") Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop .Document.Forms(0).InvokeMember("submit") Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop .Navigate("次の指定URL") Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop 「指定URL」は"submit"により新しいHTMLが生まれるので、その後の作業のためにどうしても"submit"を押したいのですが、上のようなコードですと先に「指定URL」に行ってしまいます。 "submit"をクリックせず、無視してしまうのです。 Navigate("次の指定URL")を外せばクリックしてくれるのですが・・・。 WebBrowserを完全に待機させる方法などが必要なのでしょうか? 宜しくご教授のほどお願い致します。

  • vb2005 webbrowserでリンクをクリックした後の表示待ちの方法

    VB2005を勉強中の者です。 WebBrowser1.Navigateを使ってwebページを開いた際は下記while文での表示待ちが機能するのですが、ページ表示後、さらにInvokeMemberを使って先のページにクリックで進んだ後では同一の表示待ち部分がうまく機能せずにそのまま次の処理へと進んでしまいいます。 どこに問題があるのか分からず困っております。どなたか助けていただけませんでしょうか? WebBrowser1.Navigate("https://yahoo.co.jp") '↓ここは機能します While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While WebBrowser1.Document.GetElementsByTagName("a").Item(15).InvokeMember("click") '↓これが機能しなくて困っています! While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While '↓目的 TextBox1.Text = WebBrowser1.Document.Body.InnerText

  • WebBrowserの読み込み待ちの処理の仕方

    VB2005にてプログラムしております。 WebBrowser内にて表示したページでID、PASSを自動入力、ログインするというプログラムですが、 -------------------------------------------------------------     Dim IDCODE As String = TextBox1.Text Dim PASSCODE As String = TextBox2.Text '文字列で指定したURLに飛ぶ WebBrowser1.Navigate("https://XXXXXXXXX.ne.jp/") '表示終了まで待つ ??????    ‘WebBrowser1へID、PASS入力処理 ------------------------------------------------------------- 上記の ?????? 部分に表示待ちの処理をするコードを入れると思うのですが、 With WebBrowser1 Do While .IsBusy = True Loop Do While .ReadyState <> "complete" Loop End With を入力すると読み込み途中で止まってしまうみたいです。 なにかいい方法がありますか?

  • webbrowserの読込完了が反応しない

    何度も質問してすみません。 どうしても自力では解決できないことがありましたので質問させていただきます。 webbrowserでの読み込み後の処理についてなのですが、現在表示されているページ内のリンクを自動でクリックし、次のページにあるテキストボックス内にテキストを打ち込みたいのです。 While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete  Application.DoEvents() End While を置いているのですが、どうやらこれが機能せずにテキストボックスへの書き込みがうまくいきません。 試しに、上記の記載の後ろに msgbox("待ってみる") と記載してみると、前ページのリンクをクリックした瞬間、メッセージボックスが表示されます。 メッセージボックスのOKボタンをしばらく待って手動でOKをクリックするとテキストボックスへのテキストの書き込みも正常に行われます。 ほかには Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop や System.Threading.Thread.Sleep(1000) も試してみたのですが、sleepに関してはwebbrowserの読込自体が止まってしまいます。 何か良い方法はないのでしょうか? よろしくお願いいたします。

  • VBAのWebBrowserコントロールで、ページが確実に表示された後に次の作業が行われるようにしたいです。

    宜しくお願い致します。 VBAでWebBrowserコントロールを使用していますが、ページが確実に表示された後に次の作業が行われるようにしたいのですがどのようにしたらよろしいでしょうか? 現状では With ActiveSheet.WebBrowser1 .Navigate url .Document.All.****.Click と記述しております。 上記の状態ですと、"実行時エラー'438' オブジェクトは、このプロパティまたはメソッドをサポートしていません。"と表示され途中で停止してしまいます。 素人なりの予測ですが、このエラーが発生するのはページが表示されきっていないにもかかわらず次の命令を使用としているがためにおきているのではないかと思っております。 ですから、“.Navigate url”の後、ページが表示されきるまで待機するようなプログラムを入れればいいのではと考えてます。 しかし、どのように“画面が表示されるまで待機”という命令を書いたら良いのかが分かりませんので、ご存知の方がおられましたら御教授いただけたらと思っております。 宜しくお願い致します。

専門家に質問してみよう