- 締切済み
LWP::Simple;でWebページを取得時に、cookieを求められたら
現在、別サーバにあるCGIから情報を取得するCGIを作っています。 情報元サーバは私が管理しているものではなく、ユーザー認証で自分のアカウントにログインする仕組みです。 で、私が管理するCGIに情報一覧を作りたいのですが、LWP::Simpleで情報元Webページの取得を実行すると、 「ログインしてください」ページを拾ってきてしまいます。 情報元サーバがcookieを検査し、ログイン状態を確認しているためです。 そこで、クエリか何かでクッキーをごまかせないかと考えています。 やりたいことは、 1.クッキー要求をごまかし、自分のアカウントページを取得する 2.クッキー要求をごまかし、自作CGIから情報を送信する(自アカウントとして) 自作のCGIが動くサーバはレンタルサーバが理想ですが、無理でしたらローカルサーバのみでもかまいません。 その情報元サーバにログインして手作業で操作しているPCで、ローカルサーバ(httpd)を立ち上げてCGIのテストをしていますので。。 もう3ヶ月なやんでます。。。(ToT) 分かりにくい長文で申し訳ありません。 皆様のお知恵を貸していただければ幸いです。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
lwpでクッキーを扱いたいというのなら 次のページが参考になりませんか? lwpcook - libwww-perl クックブック http://homepage3.nifty.com/hippo2000/perltips/lwpcook.html#COOKIES サイトによってはクッキーでゲームを楽しむことを好みます。デフォルトではLWPは、それが訪れたサーバから提供されるクッキーを無視します。クッキー・ジャー(cookie jar)を設定することで、それらを集め始めることができます。 use LWP::UserAgent; use HTTP::Cookies; $ua = LWP::UserAgent->new; $ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt", autosave => 1)); # and then send requests just as you used to do $res = $ua->request(HTTP::Request->new(GET => "http://www.yahoo.no")); print $res->status_line, "\n"; 保存するようにクッキーを送信するサイトに訪れると、ファイルlwpcookies.txtが大きくなります。