2016-04-02 2 views
2

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

Это мой код:

<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> 

ответ

1

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

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

$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)

Смежные вопросы