Как получить всю ссылку, присутствующую в теге div, с помощью Goutte

Я пытаюсь получить все ссылки внутри тега div. Я могу получить все имена, но также хочу получить ссылки. Пример HTML:

<li id="u_1y_y" class="friendBrowserListUnit">
<div class="clearfix">
<a class="_8o _8t lfloat _ohe" aria-hidden="true" tabindex="-1" href="/profile.php?id=100004732455685&fref=pymk" role="presentation">
<div class="clearfix _42ef">
<div class="rfloat _ohf">
<div class="friendBrowserContentAlignMiddle">
<div class="friendBrowserNameTitle fsl fwb fcb">
<a href="/profile.php?id=100004732455685&hc_location=friend_browser&fref=pymk">Jeya Kumar</a>
</div>
<div class="friendBrowserMarginTopMini"></div>
<div class="fsm fwn fcg">
</div>
</div>
</div>
</li>
<li id="u_1y_y" class="friendBrowserListUnit">
<div class="clearfix">
<a class="_8o _8t lfloat _ohe" aria-hidden="true" tabindex="-1" href="/profile.php?id=100004732455&fref=pymk" role="presentation">
<div class="clearfix _42ef">
<div class="rfloat _ohf">
<div class="friendBrowserContentAlignMiddle">
<div class="friendBrowserNameTitle fsl fwb fcb">
<a href="/profile.php?id=100004732&hc_location=friend_browser&fref=pymk">Aman Kumar</a>
</div>
<div class="friendBrowserMarginTopMini"></div>
<div class="fsm fwn fcg">
</div>
</div>
</div>
</li>

Что я пробовал:

$message = $crawler->filter('div.friendBrowserNameTitle.fsl.fwb.fcb');
foreach ($message as $key) {
    echo $key->textContent . '<br>';
}

Выход:

Jeya Kumar
Aman Kumar

Но как получить ссылки:

/profile.php?id=100004732455685&hc_location=friend_browser&fref=pymk
/profile.php?id=100004732&hc_location=friend_browser&fref=pymk

person Aman Kumar    schedule 21.06.2016    source источник


Ответы (1)


Когда пользователь делает запрос с помощью Goutte, возвращается экземпляр Symfony\Component\DomCrawler. Объект Crawler предоставляет служебный метод Crawler::links(), обеспечивающий все ссылки в пределах данного объекта сканера.

Метод Crawler::links() вернет массив ссылок, найденных внутри.

$links = $crawler->links();
foreach ($links as $link) {
    echo $link->getUri();
}
person Shaun Bramley    schedule 23.06.2016