任务非常简单:访问一个 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) ;