Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание для OMD OM Group

Описание

Решения для заданий 1 и 2 находятся в файлах task_1 и task_2 подкаталога src/app соответственно.

Данные сохраняются в JSON-файлы и БД (PostgreSQL). Формат сохраненных данных в БД немного отличается, так как во втором задании используются списки внутри словаря. Поэтому в БД вместо списка идет строка - перечисление элементов списка через ";".

Полученные JSON-файлы можно посмотреть в директории output.

Запуск

Подготовка

Для корректного выполнения задания №2 необходимо использовать актуальный Bearer токен. Для этого

  1. Зайдите на сайт https://www.perekrestok.ru;
  2. Откройте инструменты разработчика;
  3. Перейдите на вкладку Nerwork;
  4. Там откройте заголовки (Headers) любого запроса;
  5. Необходимо найти заголовок auth;
  6. Вставьте значение этого заголовка в self.headers["auth"] класса PerecrestokParser в файле src/app/parsers/perecrestok_parser.py.

Запуск

Для запуска приложения можно использовать Docker.

  1. В терминале пропишите
    docker-compose up --build -d
    
  2. Накатите миграции
    docker exec parsing_app alembic upgrade head
    
  3. Запустите приложение
    docker exec parsing_app python -m app.task_1
    
    docker exec parsing_app python -m app.task_2
    

Внимание

  1. На сайте детского мира за время выполнения тестового задания один раз немного поменялась верстка (изменились названия классов), так что есть вероятность, что придется подправить их названия в случае чего;
  2. В задании 1 в баннере 5 (рекламный блок в header страницы) непонятно где было брать мета информацию, изображения были взяты из style. И этот элемент всего 1, а не 8 как показано в примере. Но внутри такого элемента находятся 2 div, из их styles и были взяты изображения. Поэтому сущность одна, но собирается как две с разными картинками, но одним content_url.

Недоработка

Задание 1 выдает ошибку (selenium.common.exceptions.TimeoutException) при выполнении решения в headless режиме, с соответствующими опциями. Не видит искомых элементов. Соответственно, в Docker такая же ситуация.

В обычном режиме работает исправно.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages