使用 Perl 创建具有必要 cookie 的会话
Create a session with necessary cookies using Perl
我会尽量提供详细信息。
使用 Perl,我正在尝试从 Web of Knowledge (WoS) (url:http://admin-apps.webofknowledge.com/JCR/JCR?RQ=SELECT_ALL&cursor=1)。应该注意的是 link 只能使用大多数学术机构的 IP 访问,例如我的 IP,或者来自付费用户。
每当我访问link(使用浏览器)并且过了一段时间后,会话已过期,所以我需要点击link (http://admin-router.webofknowledge.com/?DestApp=JCR) 建立新会话。使用我对 Firebug 的基本知识,我发现当我通过身份验证时,我得到一个名为 jcrsid 的 cookie,其中包含一个随机字符串值。
我的问题如下:
使用 Perl 的 LWP 模块,我应该采取什么步骤来建立会话并下载我需要的网页。 (如果我使用 LWP 下载页面,我会下载与要求我使用浏览器建立新会话时出现的完全相同的页面)。
您需要set a cookie_jar
on your LWP::UserAgent object. LWP::UA will then store all the cookies it encounters in a HTTP::Cookies反对并为您处理。它们将随每个请求一起发送。
您可以使用空哈希引用 {}
将您的 cookie 存储在内存中。这种工作不需要使用文件。
use strict;
use warnings;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(
cookie_jar => {},
);
就是这样。然后你会 get
link 首先给你登录 cookie。
my $res_login = $ua->get('http://admin-router.webofknowledge.com/?DestApp=JCR');
die $res_login->status_line unless $res_login->is_success;
之后您就可以开始加载您的页面了。 cookie 将自动发送。
我会尽量提供详细信息。
使用 Perl,我正在尝试从 Web of Knowledge (WoS) (url:http://admin-apps.webofknowledge.com/JCR/JCR?RQ=SELECT_ALL&cursor=1)。应该注意的是 link 只能使用大多数学术机构的 IP 访问,例如我的 IP,或者来自付费用户。
每当我访问link(使用浏览器)并且过了一段时间后,会话已过期,所以我需要点击link (http://admin-router.webofknowledge.com/?DestApp=JCR) 建立新会话。使用我对 Firebug 的基本知识,我发现当我通过身份验证时,我得到一个名为 jcrsid 的 cookie,其中包含一个随机字符串值。
我的问题如下: 使用 Perl 的 LWP 模块,我应该采取什么步骤来建立会话并下载我需要的网页。 (如果我使用 LWP 下载页面,我会下载与要求我使用浏览器建立新会话时出现的完全相同的页面)。
您需要set a cookie_jar
on your LWP::UserAgent object. LWP::UA will then store all the cookies it encounters in a HTTP::Cookies反对并为您处理。它们将随每个请求一起发送。
您可以使用空哈希引用 {}
将您的 cookie 存储在内存中。这种工作不需要使用文件。
use strict;
use warnings;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(
cookie_jar => {},
);
就是这样。然后你会 get
link 首先给你登录 cookie。
my $res_login = $ua->get('http://admin-router.webofknowledge.com/?DestApp=JCR');
die $res_login->status_line unless $res_login->is_success;
之后您就可以开始加载您的页面了。 cookie 将自动发送。