Парсинг JS (без обновления страницы)

Тема в разделе "WBAppCEF", создана пользователем Upi, 23 дек 2019.

  1. Upi

    Upi Member Пользователи

    Регистрация:
    8 май 2014
    Сообщения:
    31
    Добрый день,
    Подскажите, как правильно парсить данные, которые генерируются JS.
    Загружаем страницу, у нас данные сгененрированы - можем снять, если мы эмулируем (CEF) клик на другую страницу, то данные визуально обновляются, но JS выдача не меняется, требуется еще принудительно обновить страницу.
    Я думаю, что обновление страницы - это костыль. Скорее есть какой-то более корректный вариант, подскажите.
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Событие [GETHTML] (в WBAppCEF) берет текущий код WEB-страницы и добавляет его к результату.

    Когда в браузере данные меняются [GETHTML] получает текущее состояние.
     
  3. Upi

    Upi Member Пользователи

    Регистрация:
    8 май 2014
    Сообщения:
    31
    Я все так и делаю, и все работает изумительно. Но вот значения JSON не генерируются заново если меняется страница (назовем так, что контент плавно загружается без перезагрузки страницы, и данные JSON остаются на месте) Приходится как костыль, переходить на страницу, добавлять [REFRESH] и все собирать [GETHTML].
    Я ничего против не имею против [GETHTML] - это идеальный инструмент, просто я к тому, возможно ли [REFRESH] заменить на что-то другое чтобы динамически обновлялся JSON.

    Почему ищу решение какое-то более корректное, так как палево, зашел на страницу и обновил ее сразу.
     
  4. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.433
    Адрес:
    Latvia
    Проверяли с паузой после того как страница загрузилась, брать код макросом [GETHTML] ?
     
  5. Upi

    Upi Member Пользователи

    Регистрация:
    8 май 2014
    Сообщения:
    31
    [GETHTML] как раз и снимаю, с паузой в 30-60 секунд JSON не обновляется (поэтому вернул 5 секунд)
    Код:
    [INSTANTACTIONS]
    [WAITFORMAINFRAMELOAD(2|30)]
    [WAIT]:5000
    [GETHTML]:{skip}}},"elements":|"elements":{break}"paging":{"total":{skip}|
    Label1:
    [RESETAQUERYINITIATED]
    [DOSCRIPT]:Next
    [WAIT]:5000
    [REFRESH]
    [WAIT]:5000
    [IFAQUERYINITIATED]
    [GETHTML]:{skip}}},"elements":|"elements":{break}"paging":{"total":{skip}|
    [GOTO]:Label1
    [/IFAQUERYINITIATED]
     
    kagorec нравится это.

Поделиться этой страницей