PHPでスクレイピングをする時に使うライブラリ「PHP Simple HTML DOM Parser」で、404エラーが発生するページにアクセスする場合、下記のようにfile_get_html関数を使うとPHPエラーが発生することがある。
1 2 3 4 5 | <?php require_once './lib/simple_html_dom.php' ; $url = 'https://example.com' ; $html = file_get_html( $url ); // ページが404の場合エラー発生! |
この問題を避ける場合は、以下のようにコードを書き直すと良い。
1 2 3 4 5 6 7 8 | <?php require_once './lib/simple_html_dom.php' ; $url = 'https://example.com' ; $html = @ file_get_contents ( $url ); if (! empty ( $html )) { $html = str_get_html( $html ); } |
まず、5行目のfile_get_contentsで対象ページを取得する際、@エラー制御演算子でエラーの発生を抑制する。
その後、if文を使ってコンテンツが取得できた場合のみDOMの取得をおこなうようにすることで、404のような例外にも対応することができる。