Skip to content

Instantly share code, notes, and snippets.

@irinanazarova
Last active October 18, 2016 13:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save irinanazarova/8090cb12b19a4fa74cec2aba73c2e2a7 to your computer and use it in GitHub Desktop.
Save irinanazarova/8090cb12b19a4fa74cec2aba73c2e2a7 to your computer and use it in GitHub Desktop.

Есть сайт fragrantica.com и его русское зеркало fragrantica.ru (все то же самое с теми же url и структурой страниц, только на русском)

Нужно скачать информацию по каждому парфюму и парфюмерному бренду в БД этого сайта.

Как это можно сделать:

Выбирая тут все страны по алфавиту, получаем внизу список парфюмерных брендов для каждой страны. Таким образом получим таблицу брендов и их страниц:

Имя бренда Страна бренда Адрес страницы бренда Acqua di Parma Italy http://www.fragrantica.com/designers/Acqua-di-Parma.html

На странице бренда мы сразу видим список всех парфюмов бренда. Для каждого парфюма сохраняем вначале его данные: Бренд Название Пол Год выпуска Адрес страницы id в таблице брендов Acqua di Parma Colonia 2 1916 http://www.fragrantica.com/perfume/Acqua-di-Parma/Acqua-di-Parma-Colonia-1681.html

Значение поля Пол:

  • 0 = for men (если в списке парфюмов под его названием написано "for men")
  • 1 = for women
  • 2 = for women and men

После составления полной таблицы парфюмов для каждого парфюма с его страницы и его симметричной страницы на русском языке (http://www.fragrantica.ru/perfume/Acqua-di-Parma/Acqua-di-Parma-Colonia-1681.html) добавляем следующие три поля:

  1. Main accords: список в блоке под надписью "main accords" с сохранением порядка и с указанием ширины закрашенного столбика. Например, в Acqua di Parma это:
  • aromatic: 130
  • citrus: 121
  • fresh spicy: 102
  • fresh: 58
  • woody: 55
  1. Fragrance Notes ENG: список нот из списка под заголовком Fragrance Notes (он же иногда называется Perfume Pyramid), разбитый на 3 категории (top, middle, base) на английском c указанием их веса, указанного в блоке "Main Notes According to Your Votes". Если ноты не разбиты на категории, то их все относим к middle. Например, в Acqua di Parma это:
  • top: {},
  • middle: {
  • Sicilian Citruses: 373,
  • Lavender: 248,
  • Rosemary: 150,
  • ... },
  • base: {}

Пример с разбивкой нот на категории (Пирамида) http://www.fragrantica.com/perfume/Burberry/The-Beat-2092.html

Иногда блок "Main Notes According to Your Votes" пустой, тогда берем просто список нот из блока слева от "Main Notes According to Your Votes" и проставляем им одинаковые веса (равные 0). Пример http://www.fragrantica.com/perfume/Arkadia-Sabores-y-Aromas-de-Autor/Cadena-Sofitel-Argentina-28374.html Не видела такого вживую, но наверное есть ситуации, когда в блок "Main Notes According to Your Votes" попадают не все ноты из полного списка нот в блоке слева от него. Тогда недостающие ноты тоже указываем, но с весом 1.

И то же самое на русском 3. Fragrance Notes RUS: такой же список нот с весами, но скачанный с той же странички в домене .ru Там это называется "Основные слышимые ноты по мнению пользователей".

То есть, добавляем три поля для каждого парфюма. На этом все.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment