VBAからhttpを呼びソースを取得
ブラウザでURLを指定すると、htmlがサーバーから返され表示されます。
それをVBAからURLを指定し、htmlのソースを文字列で受け取りたいと思います。
普通にshellで渡すとブラウザが起動されてしまうし・・・。
方法があれば教えてください。
回答(2件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.2ベストアンサー20pt
HTMLテキストを取るには
Sub test01()
Set obj = CreateObject("InternetExplorer.Application.1") 'IEを新規オブジェクトとして宣言
obj.Visible = True
targetURL = "http://okweb.jp/kotaeru.php3?qid=1044759"
obj.Navigate (targetURL) '指定アドレスに飛ばす
'時間待ち(objが動作中であれば)
Do While obj.busy
Loop
'表示
obj.Visible = True
For n = 0 To obj.Document.All.Length - 1
If UCase(Trim(obj.Document.All(n).tagname)) = "HTML" Then
s = obj.Document.All(n).outerhtml 'HTMLのテキスト
Cells(n + 1, 1) = s 'エクセルONLY用
End If
Next
End Sub
2,3のWEBに載ってたものの寄せ集めですが。
なかなか載って無いものですね。
sが文字列です。エクセルなどでは、長さ制約あり。
WSHやBASP21やWEBBROWSERなど使う方法があるようですが、不勉強で全体を見渡せていないので取りあえず。
この回答へのお礼
IE自体をオブジェクトで持っていれば、ログインから実行していけるので画面遷移の問題もクリアですね。
かなり参考になりました。
Webアプリケーションの自動テストツールの作成にも使えそうですね。
No.1ベストアンサー10pt
同様の質問をしたことがあるので・・・^_^;
BASP21コンポーネントのW3get関数を利用する方法があります。文字列で「受け取る」ことはできませんが。
この回答への補足
BASP21、いいですね。
文字列で受け取らなくても、ソースを取得してファイルオープンすればいいですからね。
サイトを参考に取得することができました。
もう少し教えてください。
あるページで試してみると「ちゃんとしたルートから遷移してください」のエラーとなりました。
クッキーの指定でどうにかなりそうなのですが、どんな値を渡せばいいのかわかりません。
どこかを見ればわかるものでしょうか?
(例えば、Temporary Internet Fileとか)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示