我是WWW :: Mechanize的新手,但是我知道如何登录,然后在登录后如何使用follow_link方法访问其他页面。但是当我想直接访问该页面上没有的链接时,我丢失了身份验证。

问题的快速示例:

my $LoginURL = "http://www.website.com/user/login.jsp?";
my $DirectURL= "/Somefile?param1&param2";
$mech = WWW::Mechanize->new();
$mech->get($LoginURL);
$mech->submit_form( ... ); # fields and stuff, works fine.
$mech->get($DirectURL);    # This part fails and I'm using the direct URL.

我了解如何登录,并且可以使用follow_link方法导航,但是当我想使用get方法访问页面上没有的URL时,我只会丢失身份验证。

当我想访问不在当前页面上的直接URL时,为了保持身份验证我该怎么办?

===============>>#1 票数:-1

由于HTTP是无状态协议,因此每个请求都独立于前一个请求。 在HTTP 1.1之前的版本中,HTTP事务的默认行为是客户端与服务器联系,发送请求和接收响应,然后客户端和服务器都断开TCP连接。 如果客户端需要服务器上的其他资源,则它必须重新建立另一个TCP连接,请求资源并断开连接。 如果您已成功通过身份验证,则当您尝试访问下一页时,目标网站可能会“忘记”该身份。 尝试查看HTTP“连接”标头中包含的值。 它应该是“保持活动”,而不是“ TE,关闭”。 如果这是问题,请尝试修改“连接”标题。 您可以尝试如下操作:

  $mech->add_header(
  "Connection" => "keep-alive",
  "Keep-Alive" => "115");

希望能帮助到你。

===============>>#2 票数:-3

$ mech-> get()是LWP :: UserAgent的重载。 它需要绝对URL。

my $uri = $mech->uri();           # Get the current URI
my $uri->path_query($DirectURL);  # Replace the path with file path
$mech->get($uri->as_string);      # Returns http://www.website.com/Somefile?param1&param2

  ask by Alexander translate from so

未解决问题?本站智能推荐:

1回复

WWW :: Mechanize SSL跨站点登录失败cookie_jar不填充

URL $ url重定向到https://auth.outside.com/secure/login以通过SSL进行身份验证。 一旦您登陆页面,该站点就会存储一些cookie,并且在成功进行身份验证时也会存储一些cookie。 但是,即使我设法登陆页面,也无法填充Cookie文件。 这是谷
1回复

的表单验证。 使用Perl的NET网站

我们是Perl脚本的新手,我们希望通过.NET站点身份验证。 我们已有一个特定于Sharepoint网站的身份验证代码,下面的代码片段: 我们想要自定义代码,以使其特定于.NET网站身份验证。 我们使用了WWW :: Mechanize,请参见下面的代码段: 但是,在运行该程
1回复

Perl WWW :: Mechanize —身份验证错误获取URL

我正在尝试使用Perl的Mechanize库填写Web表单。 每当我在搜索框中输入URL时,都会提示以下消息,并且我可以成功手动登录。 但是,当我运行以下脚本时,出现以下错误: 如何使用$mech对象正确填写第一个身份验证盒凭据? 编辑: 这是在请求的站点上运
1回复

Perl WWW ::机械化并通过身份验证的代理

我有一个具有IP,端口,登录名和密码的代理。 是否可以将此代理与Perl的WWW :: Mechanize一起使用 ? 谢谢。
2回复

使用Mechanize进行基本和表单身份验证(Ruby)

我正在尝试登录公司内部网上的一个站点,该站点具有基本的身份验证弹出对话框和基于表单的身份验证。 这是我正在使用的代码(导致401 => Net :: HTTPUnauthorized错误): 这导致401 => Net :: HTTPUnauthorized错误。 以下是
1回复

使用WWW :: Mechanize访问链接时出错

使用perl在WWW链接中获取以下错误 - WWW :: Mechanize 。 错误获取javascript:submt_os('2','contact%20info','contact%20info'):不支持协议方案'javascript' 这是我的代码: 获得页
2回复

使用python mechanize登录使用NTLM身份验证的页面

我想使用mechanize登录页面并检索一些信息。 但是,我尝试验证它只是失败,错误代码HTTP 401 ,如下所示: 到目前为止这是我的代码: 我究竟做错了什么? 访问http://intra (内部页面),例如chrome,它弹出一个窗口并要求输入用户名/密码,然后一切都
2回复

WWW :: Scripter的身份验证问题

我正在使用插件WWW :: Scripter ( WWW :: Mechanize的子类)对主机的登录页面进行身份验证。 他们在登录页面上使用带有某些JavaScript函数的Ruby ,所以我不能只使用LWP::Agent模块。 这是代码: 我遇到以下错误: 我已经花了几个
1回复

Perl使用NTLM身份验证进行机械化

我还没有看到Mechanize支持NTLM的示例。 有谁知道我们如何在Mechanize中利用NTLM库? 如果没有,LWP会做这项工作吗?
3回复

如何使用WWW :: Mechanize访问按下拉列表拆分的页面

我有从以下链接下载的基因列表。 在下拉列表下将其分成60页的问题。 如何使WWW :: Mechanize从所有页面访问所有基因? 这是我目前的代码: