2016-04-02 41 views
2

私はからデータを取得しようとしていますGoutte しかし、私はクラス "empresa"でdivをフィルタリングしようとすると、ページ全体が表示されます。 特定のクラスのdivのみをフィルタリングするにはどうすればよいですか?Goutteでクラスと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> 

答えて

1

あなたは近いです。あなたのセレクターに問題があります。 crawlerjquery 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)

を行うことができます
関連する問題