フレームになっているホームページのソースを取得するには?

解決


シーザー  2005-10-09 01:05:10  No: 126139  IP: [192.*.*.*]

はじめまして。

この度、フレームになっているホームページのソースコードを取得する方法に付きまして、御教示して頂きたく書き込み致しました。

ホームページはVB6で作成したWebBrowserで指定したURLを読み込みます。
読み込み完了後にホームページのソースコードを取得したいのですが、
上下のフレームページの場合、上下共、両方のフレームのソースコードを取得したいのですが、下のフレームのソースコードしか取得することができません。

ソースコードは下記で取得しています。(抜粋です。)

Set doc = WebBrowser1.Document
HP_Text = doc.body.innerHTML
      (中略)
Set doc = Nothing

良い方法があれば、御教示お願い致します。
宜しくお願い致します。

編集 削除
中途半端  2005-10-09 04:37:03  No: 126140  IP: [192.*.*.*]

.WebBrowser1.Document.frames("ページ名.html")
または、
.WebBrowser1.Document.frames(フレーム番号)で取得できます。

またフレーム構成が多層階層になっている場合は
FRAME 0 <XXX.html>
FRAME 1 <YYY.html>
FRAME 2 <FRAME SET> 
            FRAME 0 <AAA.html>
            FRAME 1 <BBB.html>
BBB.htmlは、
.WebBrowser1.document.frames(2).document.frames(1).document
となります。

編集 削除
シーザー  2005-10-10 22:35:15  No: 126141  IP: [192.*.*.*]

ご返事遅くなり大変申し訳ございません。
早速やってみたいと思います。
ありがとうございました。
結果、ご連絡に伺います。

編集 削除
シーザー  2005-10-11 00:02:29  No: 126142  IP: [192.*.*.*]

お世話になります。
サンプルとして下記コードで実行してみましたが、
エラー438が出てしまいます。

Private Sub Form_Load()
    WebBrowser1.Navigate "http://www.****"
End Sub

Private Sub Command1_Click()
       Set doc = WebBrowser1.Document.frames(1)
       Text1 = doc.body.innerHTML
       Set doc = Nothing
End Sub

解決方法がございましたら、御教示お願い致します。
宜しくお願い致します。

編集 削除
魔界の仮面弁士  2005-10-11 09:47:58  No: 126143  IP: [192.*.*.*]

> エラー438が出てしまいます。
『オブジェクトは、このプロパティまたはメソッドをサポートしていません。』ですね。


>       Set doc = WebBrowser1.Document.frames(1)
>       Text1 = doc.body.innerHTML

エラーの原因は、プロパティの指定が間違っているからでしょう。

1. 「framesコレクション」は、「windowオブジェクト」を列挙します。http://www.microsoft.com/japan/developer/library/jpisdk/dhtml/references/collections/frames.htm

2. しかし「windowオブジェクト」には、「bodyプロパティ」がありません。
http://www.microsoft.com/japan/developer/library/jpisdk/dhtml/references/objects/obj_window.htm

これが、エラー438の理由でしょう。

これを解決するには、個々のdocumentを取得して、そこからbody要素を
取り出すようにします。

3. 「bodyプロパティ」は、「documentオブジェクト」のメンバであり、
  それは「windowオブジェクト」の「documentプロパティ」から取得できます。
http://www.microsoft.com/japan/developer/library/jpisdk/dhtml/references/objects/BODY.htm
http://www.microsoft.com/japan/developer/library/jpisdk/dhtml/references/objects/obj_document.htm

編集 削除
中途半端  2005-10-11 09:58:59  No: 126144  IP: [192.*.*.*]

おはようございます。
サンプルコードがまずくて申し訳ありませんでした。

Private Sub Command1_Click()
       'Set doc = WebBrowser1.Document.frames(1)←  ×
       Set doc = WebBrowser1.Document.frames(1).Document←  ○  
       Text1 = doc.body.innerHTML
       Set doc = Nothing
End Sub

編集 削除
シーザー  2005-10-11 22:35:36  No: 126145  IP: [192.*.*.*]

魔界の仮面弁士さん、詳しく説明して頂きまして、有難うございました。
中途半端さん、ご教示頂きましたサンプルコードで解決致しました。

色々と有難うございました。

編集 削除