Парсинг FTP-сервера госзакупок
Борис11 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
31.10.2018
Здравствуйте!
Необходимо парсить FTP-сервера госзакупок и сохранять результаты в базу. Структуру базы прилагаю.
Список требований:
- Скрипт должен обновлять всю базу каждый день, но только те файлы, которые были изменены.
- Нужна информация по контрактам, заключенным по 44 и 233 ФЗ
- Данные, которые необходимо положить в базу указаны в SQL-схеме
- Если контракт уже существует в базе, необходимо обновить его стадию и обновить поле updated_at
- Скрипт должен быть написан на PHP
- Схема XML-файлов контрактов менялась от версии к версии. Они описаны вот здесь: http://www.zakupki.gov.ru/epz/main/public/document/view.html?sectionId=362&pageNo=1&categories=FZ44&_categories=on&categories=FZ223&_categories=on&categories=FZ94&_categories=on&categories=FZALL&_categories=on(Форматы информационного взаимодействия). Но так описаны, что там чёрт ногу сломит. Имейте это ввиду.
- FTP-сервер может долгое время не отвечать, это надо учесть
- Названия регионов для 44 и 233 ФЗ теоретически могут отличаться. Если это действительно так, то в таблице contract создайте дополнительные поля регионов для 44 и 233 ФЗ.
1. 44 ФЗ. Учесть,что в ссылках есть как текущий месяц, так и предыдущий:ftp://free:[email protected]/fcs_regions/Komi_Resp/contracts/
ftp://free:[email protected]/fcs_regions/Komi_Resp/contracts/currMonth/
ftp://free:[email protected]/fcs_regions/Komi_Resp/contracts/prevMonth/
2. 233 ФЗ. ftp://ftp.zakupki.gov.ru/out/published/Adygeya_Resp/contract/
3. Лучше всего рекурсивно обходить директорию и брать все подпапки /fcs_regions/Komi_Resp/contracts/, и смотреть на дату последнего изменения архива.
Ссылка на схему БД с примерами данных: https://yadi.sk/d/1T0KCcyW2tG8wA