为什么这个 php 代码不起作用?

why is this php code not working?

这是我用来从 http://www.partyhousedecorations.com 中抓取特定数据的代码 但是我不断收到此错误 (Fatal error: Call to a member function children() on a non-object in C:\wamp\www\webScraping\PartyHouseDecorations.php on line 8 ),我被卡住了,似乎无法修复它。 这是我的代码:

<?php
include_once("simple_html_dom.php");
$serv=$_GET['search'];

        $url = 'http://www.partyhousedecorations.com/category-adult-birthday-party-themes'.$serv;
        $output = file_get_html($url); 

        $arrOfStuff = $output->find('div[class=product-grid]', 0)->children();
        foreach( $arrOfStuff as $item )
        {
            echo "Party House Decorations".'<br>';
            echo $item->find('div[class=name]', 0)->find('a', 0)->innertext.'<br>'; 
            echo '<img src="http://www.partyhousedecorations.com'.$item->find('div[class=image]', 0)->find('img', 0)->src.'"><br>';
            echo str_replace('KWD', 'AED', $item->find('div[class=price]',0)->innertext.'<br>');
        }

?>

看起来 $output->find('div[class=product-grid]', 0) 没有 return 具有名为 children() 的方法的对象。也许它是 returning null 或不是对象的东西。把它放在一个单独的变量中,看看那个变量的值是什么。

$what_is_this = $output->find('div[class=product-grid]', 0);
var_dump($what_is_this)

更新:

我调试了你的程序,除了简单的 html dom 解析器似乎期望 类 被给出为 'div.product-grid' 而不是 'div[class=x]' 它还发现该网页通过 returning 产品列表而不是产品网格来响应。我在下面包含了一份工作副本。

<?php
include_once("simple_html_dom.php");
$serv=$_GET['search'];

$url = 'http://www.partyhousedecorations.com/category-adult-birthday-party-themes';
$output = file_get_html($url);

$arrOfStuff = $output->find('div.product-list', 0)->children();
foreach( $arrOfStuff as $item )
{
    echo "Party House Decorations".'<br>';
    echo $item->find('div.name', 0)->find('a', 0)->innertext.'<br>';
    echo '<img src="http://www.partyhousedecorations.com'.$item->find('div.image', 0)->find('img', 0)->src.'"><br>';
    echo str_replace('KWD', 'AED', $item->find('div.price',0)->innertext.'<br>');
}
?>