Я использую эту подпрограмму Perl, чтобы получить строку с веб-страницы, которую я затем разделил, чтобы получить информацию, требуемую для продолжения. Это проработало дюжину лет.Как я могу обрабатывать перенаправления HTTP в моем приложении Perl?
sub capture_line {
my $page_to_get = $_[0];
my $host_to_get_text = $_[1];
my $port = 80;
my $buf = &HTTPGet($page_to_get, $host_to_get_text, $port);
my $image_capture_text;
my @lines = split(/\n/,$buf);
# print "$lines[1]\n";
# print "$page_to_get, $host_to_get_text\n";
# print "$buf\n";
foreach (@lines) {
if (/$text_to_find/i) {
$image_capture_text = $_;
print "in_loop";
last;
}
}
return $image_capture_text;
}
Unforntuately, $page_to_get
теперь всегда 301 редирект и $buf
, при печати, дает мне страницу 301 переназначения, который, очевидно, не содержит искомый текст. Есть ли пара значений $in
(например), которую я могу использовать с HTTPGet
, чтобы пересказывать меня по перенаправлению, чтобы получить страницу, которую я вижу при вводе http://$host_to_get_text$page_to_get
в свой браузер? Или есть лучший способ сделать то же самое (знать постоянно меняющееся имя файла в источнике просматриваемой веб-страницы)?
Спасибо за ваше время. Greg Marsh
Какой модуль HttpGet от? Вам нужно получить заголовок 'Location' из ответа и переиздать запрос, используя эту ссылку. Я знаю, что другие объекты, такие как 'HTTP :: Request' вместе с' LWP :: UserAgent' будут автоматически обрабатывать перенаправления, но я не уверен, какой модуль вы используете. –
Традиционная шутка в других дискуссионных группах заключается в том, чтобы сказать: «Ваша проблема в строке 138 вашей подпрограммы HTTPGet». К счастью, люди здесь не такие грубые. – AmbroseChapel