список узлов laravel goutte пуст

У меня проблема с goutte, в некоторых материалах есть изображения, а в других нет, и если изображения нет, я хочу, чтобы оно игнорировало это и продолжало работу без сохранения изображения, но если оно есть, сохраните его.

$crawler->filter('div[id=content]>.teaser-50')->each(function ($node, $key) {
        $title = $node->filter('.plain')->text();
        $datepublished = $node->filter('.dateonline')->text();
        $description = $node->filter('.teaser-link')->text();
        $link = $node->filter('a')->link();
        if(!empty ($link_r = $link->getUri())) {
        $image = $node->filter('img')->image();
        $image_s = $image->getUri();
        $filename = basename($image_s);
        $image_path = ('news-gallery/' . $filename);
        Image::make($image_s)->save(public_path('news-gallery/' . $filename));
        }
        $id = 1+ $key + 1;
        $news = News::where('id', $id)->first();
        // if news is null
        if (!$news) {
            $news = new News();
        }
        $news->title = $title;
        $news->datepublished = $datepublished;
        $news->description = $description;
        $news->link = $link_r;
        $news->image = $image_path;
        $news->save();
        $this->info('Scraping done succesfully');
    });

на данный момент у меня есть вывод:

λ php artisan scrape:news
Scraping done succesfully
Scraping done succesfully
Scraping done succesfully
Scraping done succesfully


  [InvalidArgumentException]
  The current node list is empty.

текущий список узлов пуст возникает в первой новости, у которой нет изображения, как это можно решить?


person Przemek    schedule 15.06.2017    source источник
comment
Оберните его в блок try catch, если вы хотите просто пройти мимо него. Вы можете указать парсеру перейти в другое место, если это конец новой галереи.   -  person    schedule 15.06.2017
comment
любой пример кода?   -  person Przemek    schedule 15.06.2017


Ответы (1)


person    schedule
comment
Тогда ваше исключение исходит откуда-то еще. Попробуйте обернуть больше кода с помощью try catch и посмотреть, где он терпит неудачу. - person ; 15.06.2017