Получите div с классом с Goutte

Я пытаюсь получить данные с этого url с помощью Goutte Но когда я пытаюсь отфильтровать только элементы div с классом "empresa", я получаю всю страницу. Как я могу отфильтровать только элементы div определенного класса?

Это мой код:

<html>

<body>
        <?php

        require __DIR__ . '/vendor/autoload.php';
        use Goutte\Client;

        $client = new Client();
        $crawler = $client->request('GET', 'http://sp.cadastrosindustriais.com.br/?consulta=cal%C3%A7ados');

        $crawler->filter('div[id="empresa"]')->each(function ($node) {
            print $node->text()."\n";
        });


        ?>

</body>


</html>

person Filipe Ferminiano    schedule 02.04.2016    source источник


Ответы (1)


Вы близко. Проблема в вашем селекторе. краулер использует селекторы стиля jquery.

Вот рабочий пример вашего кода. Я поместил результаты в массив на тот случай, если вы захотите сделать больше, чем просто выгрузить результаты.

$client = new Goutte\Client();
$crawler = $client->request('get', 'http://sp.cadastrosindustriais.com.br/?consulta=cal%C3%A7ados');

$elements = $crawler->filter('.empresa')->each(function($node){
    return $node->text();
});

Затем, если вы хотите просмотреть результаты, вы можете просто сделать foreach($elements as $e)

person Casper Wilkes    schedule 09.04.2016