繁体   English   中英

使用Perl创建带有必要Cookie的会话

[英]Create a session with necessary cookies using Perl

我将尝试提供尽可能多的细节。

我正在尝试使用Perl从知识网络(WoS)(URL: http ://admin-apps.webofknowledge.com/JCR/JCR)下载JCR所有期刊的影响因子列表(期刊引文报告) ?RQ = SELECT_ALL&cursor = 1 )。 应当指出,只能使用大多数学术机构(例如我的)或付费用户的IP访问该链接。

每当我访问链接( 使用浏览器 )并且经过一段时间后,会话都已过期,因此我需要单击链接( http://admin-router.webofknowledge.com/?DestApp=JCR )建立一个新会话。 使用我对Firebug的基本了解,我发现当我通过身份验证时,会得到一个名为jcrsid的cookie,该cookie具有随机字符串值。

我的问题是:使用Perl的LWP模块 ,我应该采取什么步骤来建立会话并下载所需的网页。 (如果我使用LWP下载页面,那么我将下载与要求我使用浏览器建立新会话时显示的页面完全相同的页面)。

您需要在LWP :: UserAgent对象上设置一个cookie_jar 然后LWP :: UA会将遇到的所有cookie存储在HTTP :: Cookies对象中,并为您处理它们。 随每个请求一起发送。

您可以使用空的哈希引用{}将cookie存储在内存中。 无需将文件用于此类工作。

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

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

而已。 然后,您将get首先为您提供登录cookie的链接。

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

之后,您可以开始加载页面。 Cookie将自动发送。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM