Парсер SimpleWine На вход подаются параметры виде города moscow spb Ко

 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
Парсер SimpleWine
На вход подаются параметры в виде города:
moscow
spb
...
Которые соответствуют порядку на сайте https://simplewine.ru/catalog/vino/?setVisitorCityId=9
Каждый город - своя таблица. Города, судя по всему, подставляются в куки
Парсятся категории https://simplewine.ru/catalog/vino/ и https://simplewine.ru/catalog/shampanskoe_i_igristoe_vino/
Первый парсер:
Проходит по каталогу, записывает основную информацию (парсить из JSON или xPath'ом):
1) Артикул (внутренний id магазина)
2) Наименование вина - убираем слово "вино" - включая, если есть, год. Год отделен запятой и представлен в виде четырех цифр
<div class="product-snippet__name" itemprop="name">
3) Год вина - в отдельный столбец
4) Характеристики (каждую - в отдельный столбец), разделены запятыми
<div class="product-snippet__desc" itemprop="description">
страна, цвет, сухость, объем
5) Цена <div class="product-snippet__discount">
6) Цена со скидкой (актуальная цена) <div class="product-snippet__price product-snippet__price_discount" itemprop="price">
7) Рейтинги (таблицу - как в Winestyle) <div class="product-snippet__ratings-item">, в первом span - наименование рейтинга, во втором - баллы
8) Картинку
9) Линк на позицию
Второй парсер собирает проходит по линкам и собирает общую информацию:
1) страна, цвет, сухость, выдержка, крепость - идут последовательно в <a class="product-facts__link" - в JSON
2) Русское наименование <p class="product-info__code">
3) Сладость, кислотность, танины, тело - последовательно <div class="taste__title"> - в JSON
4) Регион, Производитель, объем, год, крепость, потенциал хранения, аппеласьон, категория, декантация, выдержка - <dd class="characteristics-params__value"> - в JSON
5) Произволителя - дополнительно отдельным столбцом
6) Выдрать текст из <div class="characteristics-description">
Убрать тэги, сохранить переносы строки
7) Температура подачи <dt class="serving__temperature-title">
С ценами на вино поступаем, как в прошлых парсерах - в основной таблице храним актуальную (текущая цена, включая скидку при наличии), в таблице истории - храним динамику