掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSXML2.XMLHTTPを利用してブラウザへ自動ログインするためには? (ID:103039)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ログインする必要があるブラウザへ自動ログイン出来る方法を教えて下さい。 提示されたコードには、ブラウザとの連動部分が記載されていないようですが…。 対象となるブラウザおよびそのバージョンは何でしょうか。 Internet Explorer? WebBrowser? あるいはそれ以外のブラウザでしょうか? > ただし制限としてMSXML2.XMLHTTPを利用する必要があります。 確かに、XMLHTTP 等を使えば HTTP 通信によるデータ送受信を行えますが、 それをブラウザのログイン目的に使うのは無理があると思いますよ。 ブラウザの制御が必要なら、直接ブラウザに通信させた方がスマートかと。 XMLHTTP が有効なのは、Webサイトを自動巡回してデータを取得したり、 HTTP によるデータの自動アップロード/ダウンロードなどといったケースです。 > 自動ログインが出来るエクセルマクロを作成したい。 対象となるページがどのような構成になっているのかが明かされていないので、 具体的なコードは提示できませんが、特定の Web サイトに対して、 ブラウザでログインするまでが目的であれば、XMLHTTP を使うのではなく InternetExplorer オブジェクトを CreateObject して、 対象のページに Navigate2 した後、ドキュメントの解析完了を待ってから、 Document プロパティを操作するという流れにしてみては如何でしょう。 (必要なのはログインまでであって、そこから先の処理は不要なのですよね?) まぁ、XMLHTTP を必要としている理由は正直、良く分からなかったのですが、 とりあえずブラウザの話はここまでにしておいといて、以下では HTTP 通信部分だけに着目してコードを見ていくことにします。 > 実際に試してみるとうまくいきません。 確認しようにも、対象としているサイトの情報などが一切ありませんので、 現時点では、そのサイトに対応したサンプルを提示するのは困難です。 今の状況では、まずは調査が先決かと思います。 Fiddler2 や Network Monitor や InetSpy などのツールを使って、 普通に手作業でブラウザからログインした場合の通信内容と、 プログラムからログインさせようとした場合の通信内容とが、 具体的にどのような違っていたのかを調べてみてください。 http://msdn.microsoft.com/ja-jp/library/bb250442.aspx http://www.microsoft.com/japan/powerpro/TF/column/am_01_1.mspx http://hide.maruo.co.jp/software/inetspy.html > X.Open "POST", ログイン情報のPOST先 > X.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" user, pass を POST することでログインできるタイプの Web サイトであることは 確認済みなのですね? ログイン後のセッション管理は Cookie で行われるのでしょうか。 もしそうなら、先述のツール等を使って、Cookieが正しくやりとりされているかを 確認してみてください。MSXML のバージョンによっては、Cookie 送出に 問題がある可能性があるようですので。 http://support.microsoft.com/kb/290899/en-us ただし今の段階では、Cookie が原因かどうかまでは分かりません。 しかし、もし仮に Cookie の扱いに問題があったのだとしたら、 WinInet 系である MSXML2.XMLHTTP.4.0 ではなく、 WinHTTP 系である WinHttp.WinHttpRequest.5.1 を使った方が 細かい制御には向いているかも知れません。 (ただしその場合、Cookie の取得とセットは自前で行うことになるかと思います)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.