0
我使用這個Perl子程序從網頁中獲取一行,然後我分割以獲取我需要的信息。這已經工作了十幾年。如何在我的Perl應用程序中處理HTTP重定向?
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而來?您需要從響應中獲取「位置」標題,並使用該鏈接重新發出查詢。我知道像'HTTP :: Request'和'LWP :: UserAgent'這樣的其他對象會自動處理重定向,但我不確定你正在使用哪個模塊。 – 2010-01-02 02:16:29
其他討論組中的傳統笑話是說「你的問題在你的HTTPGet子例程的第138行」。幸運的是,人們在這裏沒有那麼粗魯。 – AmbroseChapel 2010-01-02 08:05:50