Крупной фармацевтической компании, дистрибьютору лекарственных препаратов, медицинских изделий и техники необходимо оперативно получать информацию по изменениям в реестре лекарственных препаратов и фармацевтических субстанций: что добавлено в реестр, что удалено, что изменилось. Информация необходима для принятия решений по объемам закупок лекарственных средств с целью оптимизации товарных остатков.
Постановка задачи:
В итоге должен получиться инструмент, который ежедневно сканирует базу размером больше 100 тыс. наименований и находит ежедневные изменения.
Также инструмент должен позволять загружать уже имеющиеся базы данных с препаратами и сравнивать их между собой — находить новые, удаленные и измененные данные.
Постановка задачи:
В итоге должен получиться инструмент, который ежедневно сканирует базу размером больше 100 тыс. наименований и находит ежедневные изменения.
Также инструмент должен позволять загружать уже имеющиеся базы данных с препаратами и сравнивать их между собой — находить новые, удаленные и измененные данные.
Как мы подошли к решению задачи:
Для решения задачи мы разработали специальный инструмент — парсер. Это программа, которая в автоматическом режиме собирает нужные данные с нужных сайтов.
1
Прописали логику работы парсера и составили прототип интерфейса.
2
Далее необходимо было решить проблемы с блокировкой на целевых сайтах. При регулярных запросах сайт выдавал капчу, либо на некоторые время блокировал доступ к сайту. Как мы решили эту проблему:
— написали алгоритм парсера таким образом, чтобы для целевых сайтов это воспринималось как действие реального пользователя (имитировали реальный браузер, реальную операционную систему, смоделировали клики мышкой пользователем)
— написали скрипт для автоматического ввода капчи (в случае, если алгоритмы целевых сайтов примут нас за роботов)
— для работы использовали специальные прокси-сервера, которые подменяли реальный IP-адрес сервера. Для целевых сайтов это выглядело как одновременное посещения разных пользователей с разных компьютеров
3
Сравнение данных: ежедневно парсер получал реестр из более чем 100 тыс. наименований. Каждый новый реестр сопоставлялся с предыдущим (т.е. полученным за предыдущий день) и отдельно выводились позиции, в которых отмечались вновь добавленные, удаленные и измененные позиции.
4
Не было точной информации, когда на целевых сайтах происходит обновление данных. В ходе тестов выяснили, что новые данные на сайтах появляются после 03:30 по МСК.
5
Сервер запускался автоматически в ночное время (после 03:30), и к утру менеджеры нашего клиента уже получали информацию об изменениях. Эта информация уже использовалась для принятия управленческих решений. Параллельно созданный нами сервис позволял загружать реестры в формате Excel (.xlsx) и сравнивать их между собой. В результате работы мы подготовили инструкцию по работе с парсером. Все наработки по парсеру заказчик получил на свой сервер.
Как мы подошли к решению задачи:
Для решения задачи мы разработали специальный инструмент — парсер. Это программа, которая в автоматическом режиме собирает нужные данные с нужных сайтов.
1
Прописали логику работы парсера и составили прототип интерфейса.
2
Далее необходимо было решить проблемы с блокировкой на целевых сайтах. При регулярных запросах сайт выдавал капчу, либо на некоторые время блокировал доступ к сайту. Как мы решили эту проблему:
— написали алгоритм парсера таким образом, чтобы для целевых сайтов это воспринималось как действие реального пользователя (имитировали реальный браузер, реальную операционную систему, смоделировали клики мышкой пользователем)
— написали скрипт для автоматического ввода капчи (в случае, если алгоритмы целевых сайтов примут нас за роботов)
— для работы использовали специальные прокси-сервера, которые подменяли реальный IP-адрес сервера. Для целевых сайтов это выглядело как одновременное посещения разных пользователей с разных компьютеров
3
Сравнение данных: ежедневно парсер получал реестр из более чем 100 тыс. наименований. Каждый новый реестр сопоставлялся с предыдущим (т.е. полученным за предыдущий день) и отдельно выводились позиции, в которых отмечались вновь добавленные, удаленные и измененные позиции.
4
Не было точной информации, когда на целевых сайтах происходит обновление данных. В ходе тестов выяснили, что новые данные на сайтах появляются после 03:30 по МСК.
5
Сервер запускался автоматически в ночное время (после 03:30), и к утру менеджеры нашего клиента уже получали информацию об изменениях. Эта информация уже использовалась для принятия управленческих решений. Параллельно созданный нами сервис позволял загружать реестры в формате Excel (.xlsx) и сравнивать их между собой. В результате работы мы подготовили инструкцию по работе с парсером. Все наработки по парсеру заказчик получил на свой сервер.