1

我需要有关 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 参数,但是此代码仅返回第一个实例,并且还返回一个错误:

当前节点列表为空

我错过了什么?提前感谢您的帮助。

4

1 回答 1

4

不知道为什么需要过滤两次,但更直接的 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>';
});
于 2016-12-07T21:54:45.903 回答