DOM Crawler和当前节点列表为空 - 如何获取列表

时间:2016-12-07 21:11:52

标签: symfony domcrawler

我在Symfony 3.2中需要DOM Crawler的帮助。 这是我的代码:

$html = file_get_contents('http://www.wakacje.pl/wczasy/peru/');
$crawler = new Crawler($html);

$crawler = $crawler->filter('#gridWithPagination > div > div')->each(function (Crawler $node) {
    return $node->filter('div.desc > a');
});

foreach ($crawler as $item) {
    var_dump($item->attr('href'));
}

正如您所看到的,我想从列表中的所有实例中获取URI参数,但此代码仅返回第一个实例,并且还返回错误:

  

当前节点列表为空

我错过了什么? 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

不确定为什么需要过滤两次,但更简单的CSS选择器似乎对我有用:

use Symfony\Component\DomCrawler\Crawler;

$html = file_get_contents('http://www.wakacje.pl/wczasy/peru/');
$crawler = new Crawler($html);

$nodes = $crawler->filter('div#gridWithPagination div.desc a');

$nodes->each(function ($item) {
    echo $item->attr('href').'<br>';
});