Парсер Altavina На вход подаются параметры moscow spb nn Эти параметры

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Парсер Altavina
На вход подаются параметры:
moscow
spb
nn
Эти параметры определяют БД, в которую пишутся позиции, и адрес парсинга:
moscow = https://moscow.altavina.ru/catalog/wine/
spb = https://altavina.ru/catalog/wine/
nn = https://nizhny-novgorod.altavina.ru/catalog/wine/
Также парсятся игристые вина, в адресе которых вместо /wine/ подставляется /sparkling-wine/
Парсер проходит по каталогу от первой страницы и вглубь, пока есть paginations__item--last
В первый проход парсер собирает (каждый пункт - в отдельный столбец):
1) Цвет: <div class="prod-card__color">
2) Страна: <div class="prod-card__flag-wrap">
3) Объем: <div class="prod-card__vol">
4) Ссылка: <div class="prod-card__images">
5) Картинка: <img class="main-image" src="
6) Русское наименование (Alt к картинке)
7) Тип продукта: <div class="prod-card__product">
8) В наличии <span class="prod-card__avail">
9) Старую цену при наличии <div class="prod-card__old-price">
10) Новую цену <span class="price_value">
11) Value: value="
Цена пишется в отдельную таблицу с таймстемпом как в парсере Winestyle, если при проходе видим отличия (старая цена, новая цена), перезаписываем в основную таблицу новую цену, а также дозаписываем ее в таблицу с ценами строчку.
=>>> МОЖНО РЕАЛИЗОВАТЬ В ВИДЕ ВТОРОГО ПАРСЕРА, собирающего детализацию. Он планируется к запуску редко, исключительно
Затем, проходя по собранным ссылкам, ПРИ ОТСУТСТВИИ информации собираем следующие данные (каждый пункт - в отдельный столбец):
1) Оригинальное название <div class="card-top-slider__header">
2) Участие в распродаже <div class="congrivka"><span>
3) При наличии - дополнительные регионы
4) Класс вина
5) Тип винограда
6) Крепость напитка
Пункты 3-6 идут по порядку, не имеют уникальных отметок в коде
7) Наличие в магазинах: <div class="card-top-aside__availability-shop">
8) Старая цена <div class="card-top-aside__old-price"
9) Текущая цена <span class="price_value">
10) Скидка на сайте - есть/нет data-content="Скидка 10% при заказе на сайте"
11) Внутренний id магазина - data-id="{NUM}"
12) Глаз/нос/рот/послевкусие/рекомендации - в виде простого JSON [G,N,R,P,Rec]
13) Температура подачи