2

这是 html 片段,我想从中提取所有带逗号的链接元素,但不是跨度类 tl 中的跨度元素

<span class="tl"><a href="/en/laravel/" class="c">laravel</a>, <span>goutte</span>, <a href="/en/php/">php</a>, <span>dom crawler</span>, <span>guzzle</span>, <span>web scrapper</span> </span>  

我试着这样做

$links['tag'] = $crawler->filter('span.tl >:not(span)')->each(function ($node) {
       return $node->text();
         });

但它不起作用。谁能帮我提取代码?

在我得到的 $links 的 var_dump 上

array (size=1) 
'tag' => array (size=2) 
0 => string 'laravel' (length=7) 
1 => string 'php' (length=3) 

我期待这样的事情

array (size=1) 
'tag' => array (size=1)
0 => string 'laravel, php' (length=12) 

其中 ',' 也作为 text() 方法出现,也应该返回它们。

仅供参考,如果我使用此代码

     $links['tag'] = $crawler->filter('span.tl')->each(function ($node) {
  return $node->text();

我得到这个输出

 array (size=1) 
    'tag' => array (size=1)
    0 => string 'laravel, goutte, php, dom crawler, guzzle, web scrapper' (length=55) 

我只想选择所有带有链接的标签。

4

0 回答 0