Скрипт Perl для загрузки только определенных URL (https: // ...) - PullRequest
1 голос
/ 22 ноября 2011

следующее работает: но сейчас я пытаюсь загрузить файл с веб-сайта, который требует аутентификации (и, возможно, сохранить cookie, срок действия которого истекает через 24 часа) для доступа к контенту.

как обеспечить аутентификацию на сайте? Если пользователь, не прошедший проверку подлинности ООН, получает доступ к URL (или веб-сайту), он / она перенаправляется на страницу проверки подлинности, где необходимо ввести идентификатор пользователя и пароль и нажать клавишу ввода (кнопка входа в систему). после проверки подлинности автоматически возвращается к тому 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. опубликуйте свой URL в браузере: https://myurl/files/file.doc
  2. вы получаете страницу входа (URL все еще выглядит одинаково)
  3. введите имена полей: имя пользователя / пароль
  4. нажмите кнопку «ОК» (имя поля btnSubmit)

    после успешного входа в систему:

  5. Вы получаете новую страницу: https://newurl/pagSuccess/
  6. Вы должны нажать «ОК» на этой странице (чтобы вернуться туда, куда вы хотели пойти ...)
  7. тогда вы получите диалоговое окно браузера: где вам нужно:

    выберите (переключатель) «Сохранить файл» нажмите ок

  8. все готово !!! файл сохранен локально.

Ответы [ 2 ]

5 голосов
/ 22 ноября 2011

Я бы порекомендовал использовать что-то вроде Mechanize , чтобы позаботиться об этом. Он будет обрабатывать файлы cookie сеанса для вас и предоставляет полезные инструменты для идентификации и заполнения форм для входа в систему.

1 голос
/ 22 ноября 2011
...