2017-11-23 5 views
0

属性を取得することはできませんDIV:symfonyのDomCrawlerは、このために

<section class='menu'> 
    <div class="some beautiful classes" link="/some/path/in/web"> 
     <div class="contImgHome"> 
      <img src="/images/icon.jpg alt=""> 
     </div> 
     <h5> 
      <a href="javascript:void(0);">Go to Section</a> 
     </h5> 
    </div> 
    <div class="some beautiful classes" link="/another/path/in/web"> 
     <div class="contImgHome"> 
      <img src="/images/icon.jpg alt=""> 
     </div> 
     <h5> 
      <a href="javascript:void(0);">Go to another section</a> 
     </h5> 
    </div> 
</section> 

私が作る:

$response = $guzzleClient->request('GET', $url_base); 

$crawler = new Crawler((string) $response->getBody()); 
$crawler->filter('section.menu > div')->each(function(Crawler $div, $i) 
{ 
    $xx = $div->extract([ 'class', 'link']); 

    print_r($xx); 
    echo PHP_EOL; 
    die; 

}); 

そして、これを返す:

Array 
(
    [0] => Array 
     (
      [0] => some beautiful classes 
      [1] => 
     ) 

) 

私もしてみました:

$div->attr('classes'); 
$div->attr('link'); 

しかし、 'link'属性は常に空です。私はなぜ "リンク"属性を得ることができないのですか?

私はLaravel 5.2を使用しており、Symfony Crawlervíacomposerをインストールしています。

答えて

0

私の間違いでした!

WebはDocument Readyを使用してjavascriptで「リンク」属性を設定しているため、クローラがページDOMを取得するときにはattrは存在しません。

関連する問題