Web上のHTMLを取得するには?

解決


モエカナ  2009-06-01 23:22:09  No: 141999

Web上のHTMLを取得したいのですが、下記のコードで試したところ
"このページにはフレームが使用されていますが、お使いのブラウザでは
サポートされていません。"
と表示されうまく取得出来ませんでした。
"ソースの表示"で表示されるテキストデータを取り込みたいのですが、
何か良い方法はないでしょうか?

Private Sub Form_Load()    
    
    WebBrowser1.Navigate "http://******"
    Text1.Text = WebBrowser1.Document.body.outerHTML

End Sub

環境は VB6.0、WindowsXP です。

宜しくお願いします。


オショウ  2009-06-02 07:07:47  No: 142000

マイクロソフトのサンプルで・・・

http://support.microsoft.com/kb/259100/ja

こういうものがありますが・・・如何?

要は、ブラウザで表示させてHTMLを取得するのではなく
直接ソケット通信でHTMLを取得する。

以上。


モエカナ  2009-06-02 19:22:50  No: 142001

オショウ様、回答ありがとうございます。
早速試してみます。


モエカナ  2009-06-02 22:38:00  No: 142002

せっかく参考となるURLを教えて頂いたのですが、
私の力量不足で理解出来ませんでした。
申し訳ありません。
ホームページにフレームが使用されている場合、
WebBrowserでHTMLを取得する事は出来ないので
しょうか?


魔界の仮面弁士  2009-06-02 23:54:53  No: 142003

> "ソースの表示"で表示されるテキストデータを取り込みたいのですが、
> 何か良い方法はないでしょうか?

今の方法で合っていると思いますよ。実際、Internet Explorer で
http://www.htmq.com/html/frameset.shtml
の『使用例』を表示させた場合、IE メニューにある
[表示]-[ソースの表示]では、下記のソースが表示されますし。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><title>フレーム使用例</title></head>
<frameset rows="100,*">
    <frame src="frame_ue.htm" name="ue">
    <frameset cols="150,*">
        <frame src="frame_hidari.htm" name="hidari">
        <frame src="frame_migi.htm" name="migi">
    </frameset>
    <noframes>
    このページはフレームを使用しています。
    </noframes>
</frameset>
</html>

もし、個々のフレームのソースを拾いたいという意味であるならば、
frames コレクション等から、それぞれのフレームを指定すれば OK かと。

なお、その場合は下記の点に注意が必要です。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200407/04070100.txt


モエカナ  2009-06-03 02:12:44  No: 142004

魔界の仮面弁士様、解説ありがとうございます。
個々のフレームのソースを取得したい場合は、
それぞれのフレームを指定する必要があるのですね。
早速試してみます。
どうもありがとうございます。


モエカナ  2009-06-04 00:09:02  No: 142005

framesコレクションを使用する事により、フレームのソースを
取得する事が出来ました。どうもありがとうございました。
VB6.0のWebBrowserには、どうようなプロパティやメソッドが
あるのか知りたいのですが、何処か参考となるサイトを
ご教授願えないでしょうか?


魔界の仮面弁士  2009-06-04 01:53:52  No: 142006

WebBrowser コントロールの日本語版ヘルプファイルは、かつて
Office 97 などに付属していました。(Webrowse.hlp)

ただし、情報が十数年間更新されていないので、Platform SDK もしくは
オンライン版の MSDN ライブラリを見た方が良いでしょう。
和訳されていないのが難点ですが。
http://msdn.microsoft.com/en-us/library/aa752043.aspx

なお、Document プロパティから返されるオブジェクトについては、
それは WebBrowser の機能では無く、それぞれのドキュメントによって
異なるものであることに注意してください。

たとえば、HTML を表示させれば、HTML の DOM が返されますが、
フォルダを表示させれば、ShellFolderView オブジェクトとなりますし、
PDF を表示させれば、AcroPDF 等のオブジェクトとなります。

で。HTML に限った話であれば、MSHTML.TLB を参照設定して使うのが楽でしょう。
なお、ブラウザのバージョンによって、使える機能に差が生じますので、
開発環境と実行環境の IE バージョンは一致させておいてください。
http://msdn.microsoft.com/en-us/library/aa741317.aspx


モエカナ  2009-06-05 18:11:54  No: 142007

魔界の仮面弁士様、情報ありがとうございます。
また返信が遅れてしまい申し訳ありませんでした。
ご教授頂いた情報を基に色々やってみようと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加