PHPでスクレイピングをする時に使うライブラリ「PHP Simple HTML DOM Parser」で、404エラーが発生するページにアクセスする場合、下記のようにfile_get_html関数を使うとPHPエラーが発生することがある。
<?php
require_once './lib/simple_html_dom.php';
$url = 'https://example.com';
$html = file_get_html($url); // ページが404の場合エラー発生!
この問題を避ける場合は、以下のようにコードを書き直すと良い。
<?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のような例外にも対応することができる。