我有这个密码
需要一次'vendor/autoload.php';
使用symfony\component\domacrawler\crawler;

$html = <<<'HTML'
<!DOCTYPE html>
<html>
    <body>
        <p class="message">Hello World!
        <span>This is span</span>
        </p>
        <p>Hello Crawler!
                <span>This is span</span>
    </p>
    </body>
</html>
HTML;

$crawler = new Crawler($html);

foreach ($crawler->filter('body') as $domElement) {
   $domElement->filter('span');
}

我发现了这个错误。
Fatal error: Call to undefined method DOMElement::filter()

我需要知道如何在foreach循环中使用CSS Selectors选择元素?
我找了很多,但什么也没找到。

最佳答案

只需使用docs中的示例

$crawler = new Crawler($html);

$crawler->filter('body')->each(function(Crawler $node, $i){
    return $node->filter('span');
});

或者做->each(\Closure $closure)函数在幕后所做的工作:在循环中实例化爬虫节点
foreach ($crawler->filter('body') as $domElement) {
    $domElement = new Crawler($domElement);
    $domElement->filter('span');
}

10-08 09:37