Как подгрузить данные JSON по api (парсинг остатков товаров)

Тема в разделе "Подгрузка данных, которых нет в коде WEB-документа", создана пользователем Amigo1985, 11 сен 2020.

Метки:
  1. Amigo1985

    Amigo1985 New Member Пользователи

    Регистрация:
    1 июн 2020
    Сообщения:
    7
    Город:
    Санкт-Петербург
    Есть сайт Ссылки недоступны для гостей
    Возьмем к примеру товар Ссылки недоступны для гостей
    Все данные передаются в GET запросе, кроме наличия.
    Данные об остатках подгружаются POST запросом JSON, но через api
    Ссылки недоступны для гостей - ссылка POST запроса
    {"productId":"15633986","productSource":"E-COMMERCE","regionId":"506"} - данные POST запроса
    Сделать по инструкции Ссылки недоступны для гостей не получается, т.к. нет прямой ссылки на товар.
    Помогите, пожалуйста, куда копать?
    Если пробовать через WBApp то при наведении курсора на "Посмотреть наличие в магазинах" и нажатии F2 выдает пустой attributes, если пробовать через браузер определить XPath иконки открытия остатков <div id="rightMark" class="icon-arrow"> получаем //*[@id="rightMark"], вставляем в XPath WBApp , нажимаем проверить, выдает "элемент с таким XPath не найден!"
    Еще раз прошу помощи, ткните куда копать, или может какую статью прочитать?
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      185,2 КБ
      Просмотров:
      15
    • 2.jpg
      2.jpg
      Размер файла:
      259,8 КБ
      Просмотров:
      13
  2. Root

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

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

    Помимо POST данных на этом сайте для подгрузки остатков необходимо еще передать HTTP-заголовок x-api-key.

    2020-09-11_21-36-14.png
     

    Вложения:

  3. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Поиск-замена для получения данных из JSON
    Код:
    [REPLACE([JSON]{start}{/start}{end}{/end}{container}stores{/container}|[MARKER]{res}[/MARKER]
    [MARKER]{get}[/MARKER]|{multiget}
    {"storeName":"{skip}"{skip}"stock":{skip},{skip}}|{skip(1)}: {skip(3)})]<PHP_SCRIPT=https://api.leroymerlin.ru/aem_api/v1/getProductAvailabilityInfo[UTF-8]>
    <HEADERS>[CUSTOMHEADERS]</HEADERS>
    <REPLACE></REPLACE>
    {"productId":"<CD_GRAN_3!>","productSource":"E-COMMERCE","regionId":"506"}
    </PHP_SCRIPT>[/REPLACE]
     
  4. Root

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

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

    Amigo1985 New Member Пользователи

    Регистрация:
    1 июн 2020
    Сообщения:
    7
    Город:
    Санкт-Петербург
    Спасибо, большое!!!! Все получилось!
    Честно не ожидал, что так быстро ответят!!!
    И спасибо за подробную инструкцию!!!
     
    Root нравится это.
  6. Amigo1985

    Amigo1985 New Member Пользователи

    Регистрация:
    1 июн 2020
    Сообщения:
    7
    Город:
    Санкт-Петербург
    Здравствуйте.
    Столкнулся с проблемой, что Леруа поменяли код своей страницы и теперь не выводятся остатки.
    По <PHP_SCRIPT=Ссылки недоступны для гостей - понял, что изменился адрес на Ссылки недоступны для гостей
    {"productId":"<CD_GRAN_3!>","productSource":"E-COMMERCE","regionId":"506" изменился на {"productId":"<CD_GRAN_3!>","source":"E-COMMERCE","regionId":"506"

    x-api-key - не изменился, но все равно не получается получить остатки.
    Подскажите пожалуйста, как проверить [JSON] в каком виде отдает данные? И отдает ли данные? и правильно ли я ввел адрес с //get-stocks или надо без хвоста?
     
  7. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Я уже ответил на ваше сообщение в теме с вашим же вопросом от сегодня. Неужели нельзя зайти и прочитать. Зачем плодить аналогичные вопросы в соседних темах. Не понимаю такого поведения.
     
  8. max45646456045464536

    max45646456045464536 New Member Пользователи

    Регистрация:
    17 мар 2022
    Сообщения:
    1
    столкнулся с такой же проблемой,
    как теперь пофиксить?

    на POST запрос Ссылки недоступны для гостей
    возвращается
    resulted in a `400 Bad Request` response:
    {"statusCode":400,"code":"400","error":"Bad Request","message":"Wrong parameters: validation failed: should have require (truncated...)
     
  9. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    А что фиксить то.

    Ссылка и из браузера не открывается нормально, проверьте.
     
  10. maryst

    maryst New Member Пользователи

    Регистрация:
    12 май 2023
    Сообщения:
    2
    Город:
    санкт-петербург
    Получилось у кого настроить получение остатков по api с леруа?
     
  11. maryst

    maryst New Member Пользователи

    Регистрация:
    12 май 2023
    Сообщения:
    2
    Город:
    санкт-петербург
    вы смогли решить проблему?
     

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