InvalidArgumentException:当前节点列表为空。 PHP-Spider(DOMCrawler Symfony)

时间:2014-03-17 00:37:43

标签: php symfony web-crawler

我正在使用PHP-Spider抓取网站,但是当它找不到.class时会抛出错误: InvalidArgumentException:当前节点列表为空。

代码是这样的:

foreach ($spider->getPersistenceHandler() as $resource) {
    echo $resource->getCrawler()->filterXpath('//title')->text().", ";
    echo $resource->getCrawler()->filterXpath("//meta[@name='description']/@content")->text()."<br>";
    echo $resource->getCrawler()->filterXpath("//div[@class='buyFooter']")->text();
    echo $resource->getCrawler()->filterXpath("//div[@class='listFooter']")->text();
}

在某些页面上存在.buyFooter类,而在其他类上存在.listFooter。

有没有办法检查它是否存在?

我试过了isset&amp; !空但没有运气

1 个答案:

答案 0 :(得分:21)

是的,可以使用count()方法,如下所示:

if( $resource->getCrawler()->filterXpath('//title')->count() )
{
    echo $resource->getCrawler()->filterXpath('//title')->text() . ', ';
}