Crawler.php第516行中的InvalidArgumentException:当前节点列表为空。与laravel-goutte

时间:2017-01-18 08:39:02

标签: php laravel web-scraping laravel-5.2 goutte

为什么当我执行laravel-goutte文档中的代码时,它不起作用,该代码位于github上的包的主页面中:

https://github.com/dweidner/laravel-goutte

use Weidner\Goutte\GoutteFacadeGoutte;


Route::get('/', function() {
    $crawler = Goutte::request('GET', 'http://duckduckgo.com/?q=Laravel');
    $url = $crawler->filter('.result__title > a')->first()->attr('href');
    dump($url);
    return view('welcome');
});

并显示错误

error message

我使用laravel 2.2.29

1 个答案:

答案 0 :(得分:0)

您的filter未返回任何结果。这就是崩溃的原因。这就是我通过添加try catch来解决这个问题的方法。

try {
   $url = $crawler->filter('.result__title > a')->first()->attr('href');
} catch (\InvalidArgumentException $e) {
    // Handle the current node list is empty..
}