【问题标题】:Perl script to ONLY download certain URLs (https://...)Perl 脚本仅下载某些 URL (https://...)
【发布时间】:2011-11-22 17:35:05
【问题描述】:

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

如何向网站提供此身份验证?如果未经联合国身份验证的用户访问 URL(或网站),他/她将被重定向到身份验证页面,您必须在其中输入用户名和密码并按 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;

现在我需要从 URL 下载这个文件:https://myurl.com/file.doc 需要认证:用户名/密码。

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

  1. 在浏览器中发布您的网址:https://myurl/files/file.doc
  2. 您会看到一个登录页面(URL 看起来还是一样)
  3. 输入字段名称:用户名/密码
  4. 按“确定”按钮(字段名称 btnSubmit)

    登录成功后:

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

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

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

【问题讨论】:

    标签: perl lwp


    【解决方案1】:

    我建议使用诸如Mechanize 之类的东西来解决这个问题。它将为您处理会话 cookie,并提供有用的工具来识别和填写登录表单。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 我认为它不进行基于表单的身份验证。
      猜你喜欢
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 2012-08-05
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2020-01-18
      相关资源
      最近更新 更多