你如何使用Goutte刮取链接和图像

时间:2015-12-09 17:25:42

标签: php screen-scraping goutte

我想知道如何使用Goutte刮图像。 当我运行以下代码时

$ client = new Client();

    $crawler = $client->request('GET', 'http://kings.app/home');

    $crawler->filter('.post-preview')->each(function ($node) {

        $title = "<p>1}}".$node->filter('.post-title')->text()."</p>"."<br>"."<hr>";

        $sub  = "<p>2}}".$node->filter('.post-subtitle')->text()."</p>"."<br>";

        $href = $node->filter('a')->attr("href");
        $image = "<p>".$node->filter('img')->attr("src")."</p>";

        $link ="<a href='$href'>Visit W3Schools</a>";

        echo $image;
        echo $link;
        echo $title;
        echo $sub;
    });

我收到以下错误

当前节点列表为空。

但如果我删除

 $image = "<p>".$node->filter('img')->attr("src")."</p>";

 echo $image;

它工作正常。

编辑:如果我在上面的代码下添加一个单独的抓取功能,就像这样

  $crawler->filter('img')->each(function ($node) {


        echo $node->attr('src').'<br>';

    });

打印出来源

此外,尽管有错误,它仍会打印出路径。我正在使用Laravel,所以回声出现在错误输出之上。任何人都可以解释我是如何让它正常工作所以我可以刮掉图像。谢谢

0 个答案:

没有答案