Целью данной выпускной квалификационной работы является разработка прототипа web-приложения для мониторинга и анализа цен интернет-магазинов с возможностью одновременного доступа к ценам разных продуктов разных интернет-магазинов неограниченного количества пользователей, возможностью запускать анализатор цен в любой момент времени и делиться результатами анализа с другими пользователями.
На пути к реализации данного прототипа web-приложения и достижению поставленной цели представляется целесообразным решить следующий список задач:
1. Проанализировать предметную область;
2. Определить лучшие практики получения сериализуемых данных из HTML- документов;
3. Разработать алгоритм сравнения цен товаров и снятия метрик;
4. Исследовать риски и возможные проблемы массового парсинга сериализуемых данных о товарах с сайта-донора и способы минимизации данных рисков;
5. Спроектировать базу данных;
6. Реализовать механизмы авторизации, регистрации, сброса пароля пользователя и добавления товаров в избранное;
7. Реализовать пользовательский интерфейс приложения;
8. Провести функциональное тестирование системы.
Также, к задачам выпускной квалификационной работы относится развитие видения научно-практической проблемы, освоение компетенций, предусмотренных ОПОП ВО, развитие навыков планирования и организации собственной деятельности, практическое освоение методов исследования и решения прикладных задач, развитие навыков поиска и анализа информации и развитие навыков публичного выступления.
Объект исследования: интернет-магазины и особенности ценообразования товаров в интернет-магазинах.
Предмет исследования: разработка прототипа web-приложения для анализа и мониторинга цен интернет-магазинов.
К разрабатываемому web-приложению были выделены следующие
нефункциональные требования:
- Высокий уровень отказоустойчивости системы мониторинга;
- Кроссбраузерность приложения и адаптивность приложения к мобильным устройствам;
- Безопасность паролей и персональной информации пользователя при помощи RSA-шифрования;
К разрабатываемому веб-приложению были выделены следующие функциональные требования:
- Механизмы авторизации, регистрации и сброса пароля;
- Возможность добавлять товары в избранное;
- Возможность задавать URL-страницы и запускать парсинг её содержимого;
- Возможность вывода пользовательских подсказок для определенного товара с учетом динамики изменения его цены;
- Возможность вывода максимальной, минимальной и средней цены за определенный промежуток времени для каждого товара.
Выпускная квалификационная работа состоит из 4 глав.
АННОТАЦИЯ............................................................................................................ 3
ВВЕДЕНИЕ................................................................................................................ 5
Глоссарий................................................................................................................... 9
1. Практики получения сериализуемых данных из HTML-документов.................. 11
1.1. Общие методологии парсинга........................................................................ 11
1.2. Методологии отправки и чтения HTTP-запросов.......................................... 12
1.3. Способы обеспечения стабильного доступа к серверам сайтов-доноров и приемы хуманизации HTTP-запросов........................................................................... 14
1.4. Методологии анализа DOM-структуры HTML-документов.......................... 16
1.5. Валидирование полученных данных и запись в базу данных....................... 18
2. Разработка базы данных....................................................................................... 20
3. Реализация web-приложения................................................................................ 25
3.1. Используемые технологии.............................................................................. 25
3.2 Проектирование и реализация web-интерфейса.............................................. 26
4. Тестирование........................................................................................................ 35
4.1. Тестирование парсеров.................................................................................. 35
4.2. Тестирование пользовательского интерфейса............................................... 36
ЗАКЛЮЧЕНИЕ........................................................................................................ 37
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ................................................... 39
1. Айвалиотис Д. — Администрирование сервера NGINX. Подробное руководство по настройке NGINX в любой ситуации, с многочисленными примерами и справочными таблицами для всех директив. – М.: ДМК Пресс, 2017. – 288 с.
2. Джереми К. — HTML5 для веб-дизайнеров. – М.: Манн, Иванов и Фербер, 2013. – 112 с.
3. Дронов В. — Django: Практика создания Web-сайтов на Python. – СПб.: БХВ-Петербург, 2016. – 528 с.
4. Жмылёв С. — Распределённые атаки типа DDoS. – М.: LAP Lambert Academic Publishing, 2015. – 60 с.
5. Кришнамурти Б., Рексфорд Дж. — Web-протоколы. Теория и практика. HTTP/1.1, взаимодействие протоколов, кэширование, измерение трафика.
– М.: Бином, 2002. – 592 с.
6. Ригс С., Кросинг Х. — Администрирование PostgreSQL 9. Книга рецептов. – М.: ДМК Пресс, 2015. – 364 с.
7. Стоунз Р., Мэттью Н. — PostgreSQL. Основы. – М.: Символ-Плюс, 2002. – 640 с.
8. Уэсли Дж.Ч. — Python. Создание приложений. – М.: Вильямс, 2015. – 816 с.
9. Храмцов П.Б. , Брик С.А., Русак А.М., Сурин А.И. — Основы Web- технологий. – М.: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2007. – 376 с.
10. Ян С. — Криптоанализ RSA. – М.: Регулярная и хаотическая динамика, Институт компьютерных исследований, 2011. – 312 с.
11. Cochran D. — Twitter Bootstrap Web Development. – Packt Publishing, 2012. – 68 p.
12. Gourley D. — HTTP: The Definitive Guide. – 2002. – 656 p.
13. Lutz M. — Programming Python 4e. – 2011. – 1632 p.
14. McGaw J. — Beginning Django E-Commerce. –Apress, 2009. – 300p p.
15. Powers S., Peek J., O'Reilly T., Loukides M. — UNIX Power Tools. – O'Reilly Media, 2002. – 1200 p.
16. Ruse K. — Web Standards Design Guide (Internet Series). – 2005. – 365 p.