Laravel DOM Crawler поиск IMG в JavaScript - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть часть содержимого HTML:

$("table:first").after("<a href=\"https://example.com/test123/\" style=\"display: block; margin-left: auto; margin-right: auto; margin-bottom: 116px;\"><img src=\"https://example.com/images/banners/image.png\" alt=\"Example\" width=\"88px\"  style=\"display: block; margin-left: auto; margin-right: auto; \"></a>");

Мне нужен поиск img и attr src со значением https://example.com/images/banners/image.png.

Я делаю:

    $html = $content ? new Crawler($content) : [];

    $res = false;

    foreach ($html->filter('img')->previousAll() as $element) {
        if (in_array($element->attr('src'), [asset('images/banners/image.png')])) {
            $res = true;
        } else {
            $res = false;
        }
    }

Но я получаю false. Зачем? Если img не находится внутри jQuery, то все работает. Но если img в jquery, то как я могу получить true?

1 Ответ

0 голосов
/ 15 апреля 2019

Похоже, пакет symfony / dom-crawler не поддерживает Javascript.Он загружает только статические документы HTML и XML, и не загружает и не отображает Javascript, как браузер.Похоже, fabpot / goutte или symfony / panther - это пакеты, которые вы можете использовать вместе с dom-crawler для сканирования сайтов, на которых вы хотите, чтобы Javascript загружался и запускался.Они используют BrowserKit в фоновом режиме, который имитирует браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...