如何使用Goutte获取div标签中的所有链接

时间:2016-06-21 13:47:22

标签: php laravel-5.2 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

1 个答案:

答案 0 :(得分:0)

当用户使用Goutte发出请求时,会返回Symfony\Component\DomCrawler个实例。 Crawler对象提供Crawler::links()实用程序方法,提供给定搜寻器对象中的所有链接。

Crawler::links()方法将返回在其中找到的链接数组。

$links = $crawler->links();
foreach ($links as $link) {
    echo $link->getUri();
}