タスクは非常に単純です: 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); } そうしないと { warn "$url を取得できませんでした: ", $response->status_line, "\n"; }
ない短いもの
HTML::TreeBuilder を使用します。 $url="http://some_url.com/blahblah" ; $tree = HTML::TreeBuilder->new_from_url($url) ;