Метод extract() возвращает значение аттрибута и/или ноду из заданного списка. Вы можете использовать специальный атрибут _text что бы получить значение ноды. В Symfony 3.4 вы можете так же использовать новый специальный атрибут _name, что бы получить имя элементы (название HTML тэга):
$attributes = $crawler->filterXPath('//body/*')
    ->extract(['_text', '_name', 'class'])
;Когда нода пустая вызов методов text() и html() выбросят исключение \InvalidArgumentException с сообщением «The current node list is empty.». В Symfony 4.3 в эти методы можно передать параметр, который будет возвращен в случае если нода пустая, то есть вы можете задать значение по умолчанию:
// return an empty string instead of throwing an exception
$title = $crawler->filter('aside h3')->text('');
// return a default HTML content instead of throwing an exception
$userProfile = $crawler->filter('.user-profile')->html('Anonymous User');