如何解决如何阅读本身可能被重定向到另一个URL的网页内容?
| 我正在使用以下代码读取网页内容: my $ua = new LWP::UserAgent;
my $response= $ua->post($url);
if ($response->is_success){
my $content = $response->content;
...
但是,如果$ url指向移动的页面,则$ response-> is_success返回false。现在如何轻松获得重定向页面的内容?
解决方法
您需要跟踪重定向本身。
if ($response->is_redirect()) {
$url = $response->header(\'Location\');
# goto try_again
}
您可能希望将其放入while循环中,并使用\“ next \”代替\“ goto \”。您可能还希望对其进行记录,限制您愿意追随的重定向次数等。
[更新]
好的,我只是注意到有一种更简单的方法可以做到这一点。在LWP :: UserAgent的手册页中:
$ ua-> requests_redirectable
$ ua-> requests_redirectable(\\ @ requests)
这将读取或设置对象的请求名称列表,
\“ $ ua-> redirect_ok(...)\”将允许重定向。默认情况下,
根据RFC 2616,这是\“ [\'GET \',\'HEAD \'] \”。要更改为包括
\'POST \',请考虑:
推@ {$ ua-> requests_redirectable},\'POST \';
是的,也许就是这样做。 :-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。