GoutteでDOM要素が存在するか確認する方法
PHPのスクレイピングライブラリ「Goutte」でお目当てのDOM要素が存在するか確認する方法です。
require_once './goutte/vendor/autoload.php'; use Goutte\Client; $client = new Client(); $crawler = $client->request('GET', 'http://hogege.com/'); $form = $crawler->filter('#login_form'); if ($form->count() == 0){ echo "not exist!"; }else{ echo "exist!"; }
このコードでは「#login_form」というIDを持つ要素が存在するか確認をしています。
Goutteは要素が存在しないときにうかつにメソッドを叩くとエラーを吐いてしまう作りなので、
このように「count」で必ず要素の存在チェックをするようにした方がよさそうです。
以上!