やったこと

webサービスを作るときに考えたことを垂れ流します

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」で必ず要素の存在チェックをするようにした方がよさそうです。

以上!