如何使用:不是CSS Selector过滤掉Symfony DomCrawler实例?

时间:2017-05-28 23:01:55

标签: php symfony web-scraping guzzle domcrawler

这是html片段,我想用逗号提取所有链接元素但不是span类中的span元素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();
         });

但它不起作用。任何人都可以帮我提取代码吗?

在$ link的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) 

其中&#39;,&#39;也作为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) 

我想选择仅包含链接的所有标签。

0 个答案:

没有答案