任务非常简单:访问一个 url 并根据结果解析它。如果出现错误(404、500 等),请采取适当的措施。最后一块是我遇到的问题。
我列出了我当前使用的两段代码。较长的(LWP+TreeBuilder)适用于两种情况;较短的(TreeBuilder)适用于第一个条件,但不适用于错误条件。如果我使用 TreeBuilder 并且站点返回 404 或其他错误,则脚本将直接退出!有任何想法吗 ?
更长的代码有效
使用 LWP::Simple;
使用 LWP::UserAgent;
使用 HTML::TreeBuilder;
$url="http://some_url.com/blahblah" ;
$response = LWP::UserAgent->new->request(HTTP::Request->new(GET => $url));
if ($response->is_success) {
$p = HTML::TreeBuilder->new();
$p->parse($response->content);
} 别的 {
警告“无法获取 $url:”,$response->status_line,“\n”;
}
较短的没有
使用 HTML::TreeBuilder; $url="http://some_url.com/blahblah" ; $tree = HTML::TreeBuilder->new_from_url($url) ;