2016-10-14 10 views
0

できるだけ多くの詳細を提供しようとします。 Perlのを使用してPerlを使って必要なクッキーを使ってセッションを作成する

は、私は知識のウェブ(WOS)(:http://admin-apps.webofknowledge.com/JCR/JCR?RQ=SELECT_ALL&cursor=1 URL)からJCR(ジャーナル引用レポート)のためのすべてのジャーナルのインパクトファクターのリストをダウンロードしようとしています。このリンクは、鉱山のような大部分の学術機関のIPや有料ユーザーからのアクセスのみが可能であることに注意してください。いつか

私は(ブラウザを使用して)のリンクを訪問するたびにとが経過すると、セッションはので、私は新しいセッションを確立するためのリンク(http://admin-router.webofknowledge.com/?DestApp=JCR)をクリックする必要があり、期限が切れています。 Firebugに関する私の初歩的な知識を使って、私が認証されると、ランダムな文字列値を持つjcrsidという名前のクッキーが得られることがわかりました。私はセッションを確立し、私は必要なWebページをダウンロードするために取るべき手順PerlのLWPモジュールを、使用 :

私の質問は次のとおりです。 (LWPを使用してページをダウンロードする場合、ブラウザを使用して新しいセッションを確立するように要求されたときと同じページがダウンロードされます)。

答えて

1

set a cookie_jar on your LWP::UserAgentオブジェクトが必要です。 LWP :: UAは、遭遇したすべてのクッキーをHTTP::Cookiesオブジェクトに保存し、それらを処理します。彼らはすべての要求と一緒に送信されます。

空のハッシュリファレンス{}を使用して、Cookieをメモリに保存できます。この種のジョブにはファイルを使用する必要はありません。

use strict; 
use warnings; 
use LWP::UserAgent; 

my $ua = LWP::UserAgent->new(
    cookie_jar => {}, 
); 

これだけです。次に、あなたはログインクッキーを最初に与えるリンクgetになります。

my $res_login = $ua->get('http://admin-router.webofknowledge.com/?DestApp=JCR'); 
die $res_login->status_line unless $res_login->is_success; 

その後、ページを読み込むことができます。クッキーは自動的に送信されます。

関連する問題