我想知道如何使用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,所以回声出现在错误输出之上。任何人都可以解释我是如何让它正常工作所以我可以刮掉图像。谢谢