Разработать парсер сайта egrul.itsoft.ru и обработать данные

Цена договорная
13 сентября 2024, 19:44 • 17 откликов • 76 просмотров
На сайте https://egrul.itsoft.ru/ в открытом доступе через csv, xml, json (API) можно скачать выборку компаний.

На сайте доступно около 2,6 млн юрлиц https://egrul.itsoft.ru/csv/
Нужно из них отсеять только компании с выручкой более 500 млн руб (таких компаний будет 30-40 тыс), и сохранить в БД.

В БД наполнить 3 таблицы:
  • Компании - справочник всех атрибутов, которые не меняются в динамике от года к году, т.е. если изменится ОКВЭД или наименование юрлица, их надо просто перезаписать в таблицу
  • Динамические данные – справочник атрибутов, которые интересны в динамике (выручка, чистая прибыль, кол-во сотрудников по годам), я бы делал просто разные виды данных и значение метрики + год
  • Учредители – справочник владельцев компаний, many to many (один учредитель может владеть несколькими компаниями и наоборот у одной компании несколько учредителей) тут важна доля владения
Например, у компании ООО "ПРИМЕР" выручка за 2022 была 800 млн и выручка за 2023 была 900 млн, то это 2 записи в таблице динамических данных, которые относятся к одной компании.

первая запись:
company_id = 1
data_type = выручка
value = 800 000 000
year = 2022

вторая:
company_id = 1
data_type = выручка
value = 900 000 000
year = 2023

Итоговая структура БД остается на усмотрение исполнителя, но должна быть согласована с заказчиком как промежуточный этап работ.

Для MVP важно единоразово собрать таблицу, endpont для пересборки можно будет добавить потом.

Представить вывод данных вот в такую таблицу по идее должно получиться 300-500 тыс записей.
Итоговую таблицу выгрузить в гугл таблицы по шаблону, указанному выше.

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

Требования:
  • База данных PostgreSQL
  • Бизнес-логика PHP или NodeJS или Python (на выбор исполнителя)
  • Интерфейс отсутствует, выводом служит таблица
Результатом текущего этапе будет прогон на локалке у исполнителя и получение данных. Если комфортно будет вместе работать, то на следующем этапе нужно будет развернуть это на нашем сервере, доделать веб-интерфейс и развивать продукт.