Как узнать откуда интернет-магазин подружает товары?
Хочу написать скрипт, который будет проверять товар на наличие в интернет магазине (озон). На данный момент написал простой парсер, который вроде как работает, но я уверен, что есть более быстрый способ. Как сайт понимает в наличии товар или нет? Я искал через консоль разработчика, но так и не нашел((( Может быть посоветуете что-нибудь почитать на эту тему.
На Озоне они все в наличии. Вам надо наполнить базу и периодически проверять по артикулу. Если вернет 404, то его нет. Если 200, то забираем актуальную информацию. Например цену.
К сожалению, такой вариант не устраивает. Насчет товара в наличии (если я вас праивльно понял), то страница с распроданным товаром все равно доступна (например, https://www.ozon.ru/product/geympad-besprovodnoy-p...). Во-вторых, некоторые сайты могут удалять страницу на сайте, но при этом товар все равно будет в наличии (например, его можно забрать только в оффлайн магазине) и этот случай мне тоже надо будет опознать. То есть вопрос немного шире, как мне понять откуда сайт подружает товары.
Sanes, вы немного не поняли мой вопрос.
1) Продавец загрузил какой-то товар
2) Я захожу на страницу этого товара
3) Как озон понимает, что товар в наличии? Куда он отправляет запрос, чтобы вывести мне ответ?
Вопрос: как мне выполнить 3 пункт самому?
Sanes, попробую еще раз перефразировать вопрос.
Почему тут кнопочка "Узнать о поступлении"?
А тут "Добавить в корзину"?
Как сайт понимает какую кнопочку вывести пользователю.
living_corpse, скорее всего, раз продавцы сами выставляют товар, они и задают статус для товара, в продаже он, или же закончился. Возможно просмотрев какие скрипты подгружаются, можно будет найти скрипт для загрузки статуса
Евгений, в этом и вопрос. На сайте есть много ненужной мне информации (картинки, другие товары, личный кабинет и тд), мне нужна лишь информация о наличии конкретного товара, как получить ТОЛЬКО ее?
living_corpse, оке, в шаблоне стоит условие на кнопки, если товар в базе есть - генерится одна кнопка, если нет - другая, и это делает сервер! А не js на клиенте!)
living_corpse, никак, это внутренняя кухня сервера, вы получаете уже готовую html страницу без всех этих проверок, они прошли еще до того как вам отправить разметку! Если нет открытого api, то только парсить на наличие этих кнопочек или по другим маркерам
living_corpse, Пока что, вот что заметил. Какой-то POST на https://www.ozon.ru/api/composer-api.bx/widget/json/v2 возращает что-то по типу такого текста если товар есть на сайте..
{state: {title: "Доставит Ozon", availabilityRs: [{type: "text", content: "В наличии"}],…},…}
state: {title: "Доставит Ozon", availabilityRs: [{type: "text", content: "В наличии"}],…}
trackingPayloads: {,…}
если же нету товара, то выдаёт вот такое:
{isSkip: true, state: {error: "no data"}}
isSkip: true
state: {error: "no data"}
но я пока мало что знаю, как и что здесь работает, так что хз
living_corpse, Отслеживание скриптов:
Открываем - Ctrl+Shift+C | Или же если проще "Просмотреть код элемента"
Далее вкладка Network, далее XHR, и там список всяких будет(Ctrl+R чтоб загрузить его),
И потом чтоб было проще просматривать информацию о каждом, можно нажать "Preview". Так же иногда информацию шифруется Base64, на эти случаи есть онлайн декодеры