Skip to content

aksyuk/zakupki_gov_ru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Скрипты для загрузки данных с ftp госзакупок

Автор: Светлана Суязова (Аксюк) [email protected]

Последнее большое обновление: 08 Mar 2020 💐 🍨 ☕

Последнее обновление: 05 Sep 2023 📖 🍂 🍼
Обновлён скрипт загрузки с сервера: теперь не нужен сторонний ftp-менеджер, для загрузки файлов генерируется bash-скрипт. Обновлено руководство по загрузке данных.

Справочник по скриптам

Порядок выполнения скриптов для загрузки данных по электронным аукционам с ftp.zakupki.gov.ru по 44ФЗ:

  1. parser-ftp-01_Setup-fz44.R -- подготовка рабочего пространства, создание директорий под данные.
  2. parser-ftp-02_Load-Unzip-and-Index-fz44.R -- загрузка и распаковка (bash скрипты), индексация скачанных файлов. Самый длительный этап. 🕢
  3. parser-ftp-03_Parse-Loaded-XML-fz44.R -- парсинг распакованных XML-файлов по закупкам. Второй по длительности этап 🕞. В файле ./data/reference/df_xml_patterns.csv находятся xpath-запросы для разбора разных типов xml-файлов.
  4. parser-ftp-04_Prepare-Data-for-Models.R -- вычисление переменных под модели зависимости процента экономии от переменных, характеризующих конкуренцию в электронных аукционах. Для экономии памяти вычисления и совмещение таблиц делаются отдельно по каждому региону, и результат сохраняется в папку csv внутри папки с выгрузкой данных по именем DT_model_EA44_<НАЗВАНИЕ РЕГИОНА>.csv. Здесь мы выбираем данные только по успешным электронным аукционам, чем сильно ограничиваем выборку. Ситуация осложняется тем, что идентификатор заявки purchiseNumber может дублироваться в нескольких аукционах, и непонятно, что с этим делать. Сейчас скрипт оставляет только самые свежие из протоколов и заявок с одним и тем же purchiseNumber. В идеале надо смотреть глубже и связывать такие повторы в отдельные цепочки. Пока не знаю как. 🤷‍♀️
  5. parser-ftp-04_Prepare-Data-for-Models_2.R -- данные для модели для сравнения количества неудачных аукционов в товарных группах, связанных с ИТ, vs все остальные. Добавлены результаты процедур с одной заявкой, с одним участником, отменённые объявления и протоколы, а также загадочные файлы fcs_PlacementResults.xml. Там обнаружены, в частности, результаты электронных аукционов, для которых нет xml-файлов с протоколами ❓ Мне ещё предстоит разобраться в причинах этого, но пока что из fcs_PlacementResults.xml взяты финальная цена и факт того, что победитель уклонился от заключения контракта (там есть сведения по второму номеру).

Немного подробнее о содержимом ftp здесь: filenames_description.md.

Ещё вам понадобится:

  • много свободного места на жёстком диске
  • много времени
  • много оперативной памяти
  • для загрузки и распаковки под linux: lftp

Актуальное руководство по загрузке данных

см. здесь

План работы

Что планируется улучшить:

  1. Добавить интерфейс (приложение shiny app?) для настройки параметров загрузки данных 📅 до 24.09.2023

  2. Сделать схему взаимодействия файлов и глобальных переменных, чтобы улучшить понимание работы кода 📅 до 10.09.2023 ✅

  3. Пересмотреть шаблоны для парсинга, т.к. некоторые теги изменились, обеспечив обратную совместимость 📅 до 10.09.2023

  4. Переписать код через dplyr, дабы минимизировать кровь из глаз, и почистить косяки в подготовке модельных данных 📅 до 10.09.2023

  5. Организовать данные в xml-БД (???)

Releases

No releases published

Packages

No packages published