Парсер для принятия решений по объемам закупок

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

Информация необходима для принятия решений по объемам закупок лекарственных средств с целью оптимизации товарных остатков.

Постановка задачи:

В итоге должен получиться инструмент, который ежедневно сканирует базу размером больше 100 тыс. наименований и находит ежедневные изменения.

Также инструмент должен позволять загружать уже имеющиеся базы данных с препаратами и сравнивать их между собой — находить новые, удаленные и измененные данные.

Как мы подошли к решению задачи:

Для решения задачи мы разработали специальный инструмент — парсер. Это программа, которая в автоматическом режиме собирает нужные данные с нужных сайтов.

1. Прописали логику работы парсера и составили прототип интерфейса.

2. Далее необходимо было решить проблемы с блокировкой на целевых сайтах. При регулярных запросах сайт выдавал капчу, либо на некоторые время блокировал доступ к сайту. Как мы решили эту проблему:

— написали алгоритм парсера таким образом, чтобы для целевых сайтов это воспринималось как действие реального пользователя (имитировали реальный браузер, реальную операционную систему, смоделировали клики мышкой пользователем)

— написали скрипт для автоматического ввода капчи (в случае, если алгоритмы целевых сайтов примут нас за роботов)

— для работы использовали специальные прокси-сервера, которые подменяли реальный IP-адрес сервера. Для целевых сайтов это выглядело как одновременное посещения разных пользователей с разных компьютеров

3. Сравнение данных: ежедневно парсер получал реестр из более чем 100 тыс. наименований. Каждый новый реестр сопоставлялся с предыдущим (т.е. полученным за предыдущий день) и отдельно выводились позиции, в которых отмечались вновь добавленные, удаленные и измененные позиции.

4. Не было точной информации, когда на целевых сайтах происходит обновление данных. В ходе тестов выяснили, что новые данные на сайтах появляются после 03:30 по МСК.

5. Сервер запускался автоматически в ночное время (после 03:30), и к утру менеджеры нашего клиента уже получали информацию об изменениях. Эта информация уже использовалась для принятия управленческих решений.

6. Параллельно созданный нами сервис позволял загружать реестры в формате Excel (.xlsx) и сравнивать их между собой.

7. В результате работы мы подготовили инструкцию по работе с парсером. Все наработки по парсеру заказчик получил на свой сервер.

Как думаете, насколько полезен такой парсер? Оцените в комментариях от 1 до 10 баллов.
0
Комментарии
-3 комментариев
Раскрывать всегда