не удается получить содержимое веб-страницы с помощью агента Perl LWP - PullRequest
0 голосов
/ 21 октября 2011

У меня есть программа, которая может получить содержимое определенной веб-страницы, но есть некоторые страницы, где я получаю сообщение об ошибке:

Can't get http://www.sitename.com
302 Moved Temporarily at geturl.pl line 30.

Сайт нормально отображается в браузере.

Хотите знать, что я мог сделать, чтобы получить контент?

Мой код очень прост, стандартное использование LWP и отлично работает на большинстве страниц.!

================

обновление:

  1. Да, именно этот код я использую,Есть ли явная опция для включения следующих перенаправлений?
  2. Да, wget работает

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 июля 2013

Я только что прочитал слайды из , рассказывающие о некоторых различных модулях, которые могут выполнять HTTP в Perl ; может быть, вы могли бы попробовать один из других, как HTTP :: Tiny :

perl -MHTTP::Tiny -E '$res=HTTP::Tiny->new->get("http://www.sitename.com/"); say join "\n", map { $res->{$_} } (qw(response status reason content))'
0 голосов
/ 21 октября 2011

Документы LWP :: UserAgent указывают, что метод request в пользовательском агенте будет автоматически выполнять перенаправления Из этой документации неясно, использует ли get ту же логику.

Вы можете использовать метод запроса, создав объект HTTP :: Request . В этом примере используется метод request:

perl -MData::Dumper -MHTTP::Request -MLWP -e '
  $request=HTTP::Request->new(GET => "http://www.google.com");
  $ua=LWP::UserAgent->new;
  print Dumper $ua->request($request);'
...