Skip to content

Winter-Silence/PriceWebParser

Repository files navigation

PriceWebParser

Парсер для отслеживания понижения цен на товары с переданных страниц. Используется headless браузер. Работает на ozon, wildberries, vseinstrumenti и metro. При понижении цены отправляется сообщение в telegram чат с ботом.

Установка

  • bundle install
  • gem install foreman
  • npm install
  • установить chrome и chromedriver. Инструкция

Использование

Запустить сервер командой bin/dev.

Создание товара

Через веб интерфейс создать товар. На этом экране можно выбрать, в какой промежуток времени будет отслеживаться минимальная цена. Если указано "2 недели" - то при падении цены на товар, ниже минимальной за период в 2 недели, будет отправлено сообщение в чат с ботом.

Создание правила

При создании правила для парсера нужно указать адрес страницы и css селектор, по которому парсер должен будет получить текст тега. Можно указать, в течении какого времени парсер должен ждать появление тега на странице.
cookies указывать в виде json массива. Пример: {"metroStoreId"=>11, "pickupStore"=>11, "bannersCatalog"=>0}
При проверке правила, если значение тега получилось получить, оно будет выведено. Если возникла ошибка - будет выведен текс ошибки и скрин страницы. Скрины страниц сохраняются в директории tmp/screenshots/rules

Rake команды для тестирования

  • parsers:parse_single_page - запуск джобы SinglePageParserJob в реальном времени без учёта последнего запуска
  • parsers:parse_rule - проверка какого-либо правила через джобу SinglePageParserJob
  • parsers:take_screenshot[url,timeout] - сделать скрин страницы по переданному адресу. timeout - время ожадиния появления тега на странице, по-умолчанию это тег div.

Сценарий работы

При наличи правил для парсера, каждые 5 минут будет запускаться джоба SinglePageParserJob. В ней получается список правил, по которым прошедшие 2 часа парсер не отрабатывал.
Если по правилу было получено значение, отличное от последнего - оно запишется в базу, если оно окажется меньшим из всех минимум на 5%,
которые были(за период, указанный при создании товара) - будет отправлено уведомление в чат с ботом. Если при проверке возникла ошибка - это будет записано в базу по типу ошибки. Если таких ошибок накопится больше определённого порога, то будет отправлено уведомление об этом в чат. Если после череды таких ошибок снова удастся получить значение, то история ошибок очистится.

About

Парсер цен

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published