Perl脚本只能下载某些URL(https:// ...)

raj*_*eev 1 perl lwp

以下工作正在进行中:但是现在我正在尝试从需要身份验证的网站下载文件(并且可能保存一个cookie,在24小时后到期)以访问内容.

如何为网站提供此身份验证?如果经过UN身份验证的用户访问URL(或网站),则他/她将被重定向到身份验证页面,您必须在其中输入用户ID和密码并按Enter键(登录按钮).身份验证控制返回到您最初自动询问的URL.

这是我迄今为止所做的,这适用于非认证需要的网站:

    #!/usr/bin/perl
    use strict;
    use warnings;
    use LWP;
    use Data::Dumper;

    my $ua = LWP::UserAgent->new;
    my $agent = "my-lwp agent";
    $ua->agent($agent);
    $ENV{HTTPS_PROXY} = 'http://myproxy:8080';

    my $req = HTTP::Request->new(GET => 'https://mail.yahoo.com');
    $req->content_type('text/html');
    $req->protocol('HTTP/1.0');

    my $response = $ua->request($req);
     if ($response->is_success) {
         print "1 success\n";
     }
     else {
        print "1 error\n";
     }
    print Dumper $response;
Run Code Online (Sandbox Code Playgroud)

现在我需要从URL下载此文件:https://myurl.com/file.doc 需要身份验证:用户名/密码.

添加问题定义:这是在我的情况下如何使用普通浏览器:...

  1. 在浏览器中发布您的网址:https://myurl/files/file.doc
  2. 你得到一个登录页面(URL仍然看起来相同)
  3. 输入字段名称:用户名/密码
  4. 按'确定'按钮(字段名称btnSubmit)

    成功登录后:

  5. 你得到新的页面: https:// newurl/pagSuccess /
  6. 你必须点击此页面上的"确定"(回到你想去的地方......)
  7. 然后你得到一个浏览器对话框:你必须:

    选择(单选按钮)'保存文件'按确定

  8. 你完成了!!! 文件保存在本地.

jnc*_*ton 5

我建议使用像Mechanize这样的东西来处理这个问题.它将为您处理会话cookie,并提供有用的工具来识别和填写登录表单.