У меня есть сайт на wildberries, который делает запрос к серверу, а сервер возвращает ему вот такие данные для подгрузки кое-какой информации
|
1 |
{"catalogSellerHead": " <div class="seller-details"> <div class="seller-details__info-wrap"> <div class="seller-details__logo-wrap"> <div class="seller-details__logo img-plug"> <img src="//static.wbstatic.net/i/v3/catalog/seller-logo-new.jpg" width="120" height="50" alt="Логотип продавца" data-link="class{merge: sellerExtInfo && (!!sellerExtInfo.logoUrl || sellerExtInfo.hasLogo) toggle='hide'}"> <img src="//static.wbstatic.net/i/blank.gif" width="120" height="50" data-link="src{:shopInfo && !!shopInfo.logo_url ? '//images.wbstatic.net' + shopInfo.logo_url : sellerExtInfo && sellerExtInfo.hasLogo ? ('//images.wbstatic.net/shops/' + sellerId + '_logo.jpg'):'//static.wbstatic.net/i/blank.gif'} alt{>~trimWord(sellerInfo && (shopInfo && shopInfo.title || sellerInfo.trademark || sellerInfo.fineName), sellerInfo && sellerInfo.orgForms)}"> </div> </div> <div class="seller-details__info"> <div class="seller-details__title-wrap"> <h2 class="seller-details__title" data-link="{>~trimWord(sellerInfo && (shopInfo && shopInfo.title || sellerInfo.trademark || sellerInfo.fineName), sellerInfo && sellerInfo.orgForms)}"></h2> <span class="seller-details__tip-info tip-info" data-link="{tooltip tmplName='suppliersInfoTooltipster' classes='tooltip-supplier' distance=8 tmplData=sellerTooltipInfo pos='center bottom' trigger='click'}"></span> </div> <div class="seller-details__param"> <span class="address-rate-mini address-rate-mini--sm hide" data-link="class{merge: !(sellerExtInfo && sellerExtInfo.rating && !sellerExtInfo.fewVotesText) toggle='hide'}text{:sellerExtInfo && sellerExtInfo.rating}"></span> <span class="seller-details__review hide" data-link="class{merge: !sellerExtInfo toggle='hide'}class{merge: sellerExtInfo && sellerExtInfo.fewVotesText toggle='seller-details__review--icon'}html{:(sellerExtInfo && sellerExtInfo.fewVotesText ? sellerExtInfo.fewVotesText : ~nonBreakingSpaceFormatted((sellerExtInfo && sellerExtInfo.feedbacks || '0')) + ' ' + ~pluralize(sellerExtInfo && sellerExtInfo.feedbacks || 0, 'отзыв', 'отзыва', 'отзывов') + ' на товары')}"></span> </div> </div> </div> <div class="seller-details__parameter-wrap" data-link="{if sellerExtInfo tmpl='sellerCatalogBlockTmpl'}"></div> </div> <div class="seller-head img-plug" data-link="visible{:sellerExtInfo && sellerExtInfo.hasBanner}" style="display: none;"> <img src="//static.wbstatic.net/i/blank.gif" class="seller-head__img" width="1440" height="158" data-link="src{:shopInfo && shopInfo.banner ? '//images.wbstatic.net' + shopInfo.banner : sellerExtInfo && sellerExtInfo.hasBanner ? ('//images.wbstatic.net/shops/' + sellerId + '_main_banner.jpg'):'//static.wbstatic.net/i/blank.gif'} alt{>~trimWord(sellerInfo && (shopInfo && shopInfo.title || sellerInfo.trademark || sellerInfo.fineName), ~orgForms)}"> </div>", "sellerCatalogBlockTmpl": " {^{include sellerExtInfo}} <div class="seller-details__parameter"> {{if !hideSellsCount}} <div class="seller-details__parameter-item"> <p class="seller-details__parameter-value{{if saleItemQuantity > 0}} seller-details__parameter-value--delivered{{else}} seller-details__parameter-value--no-delivered seller-details__parameter-value--gray{{/if}}">{{if saleItemQuantity > 0}}{{spaceFormatted:saleItemQuantity}}{{else}}Нет проданных{{/if}}</p> <p class="seller-details__parameter-name">{{if saleItemQuantity > 0}}{{pluralize: (saleItemQuantity || 0) 'товар продан' 'товара продано' 'товаров продано'}}{{else}}товаров{{/if}}</p> </div> {{/if}} {{if defectPercent != null && saleItemQuantity > 0}} <div class="seller-details__parameter-item"> <p class="seller-details__parameter-value seller-details__parameter-value--defective">{{:defectPercent}}%</p> <p class="seller-details__parameter-name">товаров с браком</p> </div> {{/if}} {{if registrationDate}} <div class="seller-details__parameter-item"> <p class="seller-details__parameter-value seller-details__parameter-value--time{{if isNewSupplier}} seller-details__parameter-value--gray{{/if}}">{{if isNewSupplier}}Новый магазин{{else}}{{humanDate:registrationDate}}{{/if}}</p> <p class="seller-details__parameter-name">на Wildberries</p> </div> {{/if}} {{if percent > 0 && saleItemQuantity > 0}} <div class="seller-details__parameter-item"> <p class="seller-details__parameter-value seller-details__parameter-value--delivery">{{:percent}}%</p> <p class="seller-details__parameter-name">доставок вовремя</p> </div> {{/if}} </div> {{/include}}", "catalogSellerMenu": " <div class="menu-catalog"> <ul class="menu-catalog__list-2"> {{for catalogMenu}} {{if children}} {{for children}} <li> <a href="{{:node.link}}">{{:node.name}}</a> </li> {{/for}} {{/if}} {{/for}} </ul> </div>", "catalogSellerBanners": " <ul class="constructor-seller__banners constructor-seller__banners--{{:getMixedContainerClass(templateType)}}"> {{for mixedBlockItems}} {{if itemType == 1}} <li class="constructor-seller__banner"> {{singleBanner banner=banner bannerIndex=#getIndex() analiticsCode=''/}} </li> {{/if}} {{/for}} </ul>", "catalogSellersPreview": " {{for brandPreviews ~templateType=templateData.templateType}} {^{brandConstructorPreview title=title url=url xfilters=xfilters xpath=xpath xquery=xquery targetUrl='' brandId=0 recent=false /}} {{/for}}"} |
Я анализируя какое-то время, понял что к этому причастен JavaScript. Начал перебирать все файлы, которые подключаются к странице и в одной из них нашел сходства sellerExtInfo и подобные. Вот код этого JS файла
|
1 |
https://static-basket-01.wb.ru/vol0/j/spa/modules/catalog_v2/sellerCatalog/catalogSellerBlocks.min.76647aeaee82f744.js |
Модераторы, прошу, не убирайте ссылку, весь код не влез просто-напросто в лимит 10 тыс. символов.
Итак, мне нужно обращаться совсем из другого языка к этому файлу и доставать информацию, соответственно передавать в него наверное айди продавца и получать информацию. Можете подсказать, пожалуйста, как это сделать, я пытался писать какие-то наброски и искать в интернете, но поиск не дает результатов.
Дополнительно:
Содержание
Ответы:
Похоже, вы смогли найти нужный запрос в devtools.
Щёлкните по нему пкм, сохранить запрос как curl, и попробуйте получить эти данные через curl.
Если получится, то вот вам решение. Curl для большинства языков есть в виде библиотеки, а даже если для вашего "совсем другого" нету - можно вызывать внешний бинарник.
- Вы не поняли. Этим запросом получается только json список, в котором, собственно говоря сам html код для вставки на страницу(странное решение). А я нашел скрипт, который подключается в нужной мне части кода. И мне нужно как-то самому использовать этот скрипт.
- im_mommmys,
Если я правильно понял, что вам нужны данные, которые WB вставляет в код html из вашего сообщения, то у вас странный подход со скриптом. Вам нужно грузить страницу WB, в селениум к примеру, и забирать нужные вам данные оттуда...а не пытаться найти как эти данные туда подставляются.... - Павел, ещё правильнее, если im_mommmys, объяснит, наконец, что он пытается сделать.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для того чтобы достать данные из скрипта JavaScript, существует несколько способов, в зависимости от того, что именно вы хотите получить.
Если вам нужно получить данные из переменной JavaScript, вы можете использовать метод document.getElementById() для доступа к элементу DOM, содержащему эту переменную, и затем получить значение этой переменной. Например:
Если вам нужно получить данные из формы, в которой пользователь вводит информацию, вы можете использовать методы document.getElementById() или document.querySelector() для доступа к элементам формы и получения значений полей. Например:
Если вам нужно получить данные из JSON-объекта, который был возвращен с сервера, вы можете использовать метод JSON.parse() для преобразования строки JSON в объект JavaScript. Например:
Если вам нужно получить данные с сервера, вы можете использовать AJAX запросы с помощью объекта XMLHttpRequest или более современных методов, таких как fetch(). Например:
Надеюсь, эти примеры помогут вам получить данные из скрипта JavaScript. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!
Для того чтобы извлечь данные из скрипта JavaScript, вам необходимо использовать различные методы и техники в зависимости от того, какие данные и каким образом они хранятся в вашем скрипте.
Если данные хранятся в переменной JavaScript и вам нужно передать их на сервер, вы можете воспользоваться AJAX запросами. Например, с помощью объекта XMLHttpRequest вы можете отправить данные на сервер и получить ответ. Вот пример кода на JavaScript:
Если вам нужно получить данные из HTML элементов на странице, вы можете использовать методы доступа к DOM. Например, с помощью метода getElementById() вы можете получить данные из определенного элемента. Вот пример кода на JavaScript:
Если у вас есть внешний скрипт, который вы хотите загрузить и выполнить, вы можете использовать тег . Например, вы можете загрузить скрипт с помощью тега и обработать его содержимое. Вот пример кода на JavaScript:
Надеюсь, эти примеры помогут вам извлечь данные из скрипта JavaScript в зависимости от ваших потребностей. Если у вас есть конкретные вопросы или проблемы, не стесняйтесь задавать их для получения более подробной помощи.