tuktuk-Laravel
@tuktuk-Laravel
Dev tuk tuk

Как распарсить javascript в phpqueryOjbect?

Как спарсить данные из phpqueryOjbect в котором есть <script>...<script>?
У меня есть страница товара, в ней нужно спарсить хлебные крошки, в phpqueryOjbect в html не попадают селекторы через которые их можно получить, категория товара хранится в js скрипте. Вот сам скрипт который есть в объекте -
<script>
                window.dataLayer = window.dataLayer || [];
                function gtag(){dataLayer.push(arguments);}
                gtag('js', new Date());
                gtag('config', 'AW-825966386');
                    var payload = {
                        'send_to': 'AW-825966386',
                        'ecomm_pagetype': 'product',
                            'ecomm_prodid': '739330095',
                            'ecomm_totalvalue': 55.81,
                            'ecomm_category': 'Сосна искусственная'
                    };
                    gtag('event', 'page_view', payload);
            </script>


Мне со скрипта нужно получить 1 элемент, а именно ecomm_category и его значения.

Вот моя заготовка и логика
//phpQueryObject
    $productCard = pq($productCards);
    //пустой массив крошек
    $data['breadcrumbs'] = array();

    $entry = $productCard->find('');//Обратиться к элементам из скрипта js

    //Создание массива с категориями
    foreach ($entry as $row) {
        $ent = pq($row);
        $name = $ent->text();
        $url = $ent->attr('href');
        $data['breadcrumbs'][$name] = $url;
    }
    print_r($data['breadcrumbs']);

Я хотел получить данные хлебных крошек в массив ключ значение, и использовать предпоследний элемент(категория товара, так как последний элемент на сайте это название товара) для вывода категории в выгрузку xml.
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вот вам регулярка, например: https://regex101.com/r/BHfpVi/1/

Но что-то странное вы пишете. Хотите вытащить ecomm_category из js-ки, но в коде похоже перебор каких-то ссылок.

А вообще, phpQuery - древняя и неудобная хрень, и не пора бы перейти на DiDom, symfony/dom-crawler, или laminas-dom?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы