Code Monkey home page Code Monkey logo

zakupkiparser's Introduction

ZakupkiParser

Парсер для http://zakupki.gov.ru/

На данный момент реализована выгрузка планов закупки, договоров и извещений о закупке с ftp сервера.

Инструкция по запуску (убедитесь, что используете ветку master)

Разработка ведется на Java 17. (Я использую данный JDK)

Настройка базы данных

В данной программе используется база данных MySQL и есть два способа ее настройки:

  1. Стандартный
  2. Docker

1. Стандартный способ

Устанавливаем базу данных MySQL обычным способом. В интернете есть много инструкций для этого.

ВАЖНО! Пароль для пользователя root должен быть 12345.
В противном случае заходим в файл src/main/resources/application.yml и меняем 12345 на свой пароль.
Также пароль нобходимо сменить в файле open_data/insert_from_file.py

После установки необходимо подключиться к базе данных и выполнить скрипт из файла database/docker/sql/create_db.sql

2. Docker (только для тех, кто знает что это)

Заходим в папку database/docker и запускаем файл docker.sh.

Табличные данные

Перед парсингом необходимо заполнить базу данных табличными данными. Для этого переходим в папку open_data/ и запускаем скрипт insert_all.py. Вам понадобится библиотека pymysql

Запуск парсера


Открываем проект в вашей среде разработки (Я рекомендую IntelliJ IDEA от Jetbrains) и настраиваем проект Maven (IntelliJ IDEA скорее всего сделает это самостоятельно при открытие папки с проектом).
Все что вам остается это зайти в src/main/java/ru/homyakin/zakupki/Application.java и запустить программу.
Вы можете выбрать какие именно папки и регионы вам нужны перед началом загрузки, а также выбрать промежуток времени. ВАЖНО время файла определяется по его последнему изменению, поэтому в выгрузке за 2020 год могут оказаться файлы, созданные в 2019 году.

Скорость работы

Алгоритм программы устроен так, что лучше выгружать несколько папок или регионов одновременно, так как в этом случае имеется возможность параллельной обработки данных. Одну папку в рамках одного региона можно обрабатывать исключительно последовательного.
В application.yml можно указать сколько одновременно папок можно обрабатывать, по-умолчанию - 15.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.