あるURLのリクエストした結果が知りたいです。
HTMLを取得しようとしたら、
すぐ違うページへリダイレクト(多分 refresh タグで0秒にしてる?)してしまうので、リダイレクト先のHTMLを取得することしか出来ませんでした。
よろしくお願いします。
ツール
→インターネットオプション
→セキュリティ
の設定で、
レベルのカスタマイズという部分がありますが、
「ページの自動読み込み」をいうところがありますが、
それが「有効」になっていませんか?
その部分を「無効」にすることで、
ある程度は自動的に別のページに移動するのを
避けることが可能だと思います。
(ただし、ブラウザがIEの場合です。
別のブラウザの場合はわかりません。)
URLがわからないと調べようもありませんので、URLを秘匿しなければならないのならば以下のような方法で調べてみてください。
InternetExplorerを開き、インターネット一時ファイルを削除してかれ、アドレス欄にURLを打ち込んで移動してください。
飛ばされたらInternetExplorerを閉じてインターネット一時ファイルの中にあるhtmlファイルをメモ帳などで片っ端から覗いてみてください。
ただし、覗いてみた結果refreshなどを行っていない様子であれば、サーバーサイドで飛ばしている可能性がありますので、その場合はどこにどのような形で飛ばしているのか(あるいは、どこに置かれているファイルをインクルードしているのか)はサーバー管理者にしか分かりませんので、そのURLの管理人に相談してください。
いやいや、Excel VBAでプログラミング的にやりたいんです。
basp21のw3getメソッドを使うと、ソースの取得は可能です。
ただし外部ファイルに保存する形になりますが。
http://www.hi-ho.ne.jp/babaq/basp21.html#0041
sampleソース:
Dim bobj As Object
Set bobj = CreateObject("basp21")
para = "-d c:\temp http://www.yahoo.co.jp/index.html"
rc = bobj.W3get(para)
Set bobj = Nothing
これで、c:\temp配下にindex.htmlが作成されます。内容は指定したURLのものになります。
metaタグでrefresh指定していても、refresh先ではなく元のソースを取得できることは確認しました。
>多分 refresh タグで0秒にしてる?
>いやいや、Excel VBAでプログラミング的にやりたいんです。
本当にrefreshでクライアント側(貴殿のパソコン側)で他のページに飛んでいるのであれば1/や3/で回答いただいているような方法で対処可能ですが、サーバーサイドで飛ばされている場合はクライアント側では対処できないということは理解されておられますか?
クライアント側かサーバー側かを切り分けるために2のような回答をしたのですが、クライアント側で対処できそうな状態(refreshで動作していれば対処可能)しているかどうかの確認を取ってみてください。
refresh タグで0秒にしてる 前提での回答をお願いします。
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | ardarim | 897回 | 806回 | 145回 | 2006-12-10 05:47:47 |
いやいや、Excel VBAでプログラミング的にやりたいんです。