我正在使用此代码来阅读网页内容:
my $ua = new LWP::UserAgent;
my $response= $ua->post($url);
if ($response->is_success){
my $content = $response->content;
...
但如果$ url指向已移动的页面,则$ response-> is_success将返回false。现在如何轻松获取重定向页面的内容?
答案 0 :(得分:1)
你需要追逐重定向。
if ($response->is_redirect()) {
$url = $response->header('Location');
# goto try_again
}
你可能想把它放在while循环中并使用“next”而不是“goto”。您可能还想记录它,限制您愿意追逐的重定向数等等。
[更新]
好的,我刚刚注意到有一种更简单的方法可以做到这一点。从LWP :: UserAgent的手册页:
$ua->requests_redirectable $ua->requests_redirectable( \@requests ) This reads or sets the object's list of request names that "$ua->redirect_ok(...)" will allow redirection for. By default, this is "['GET', 'HEAD']", as per RFC 2616. To change to include 'POST', consider: push @{ $ua->requests_redirectable }, 'POST';
所以是的,也许只是这样做。 : - )