Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Нужно спарсить данные с сайта производителя оборудования используя инфраструктуру модуля на Yii2. Скелетон модуля с рабочим примером для AMD. 

https://www.amd.com/en/support/

Интересуют все производители присутствующие на рынке. Сейчас в топе на выбор

https://www.asrock.com/support/index.asp

https://www.dell.com/support/home/ru/ru/rubsdt1/Products?~ck=mn

https://support.hp.com/ru-ru/drivers

https://support.razer.com/

# Задача

Нужно обойти весь каталог и собрать всю структуру до страницы конечного продукта и файлов к нему. 

На выходе нужно иметь возможность ассоциации файлов по критериям:

- Тип оборудования

- Операционная система \ Разрядность ОС

- Серия

- Модель

Последовательность запросов на примере HP:

https://support.hp.com/ru-ru/products

https://support.hp.com/ru-ru/products/gaming

https://support.hp.com/ru-ru/products/gaming/omen-accessories

https://support.hp.com/ru-ru/product/omen-by-hp-mouse-with-steelseries/12733342

https://support.hp.com/ru-ru/drivers/selfservice/omen-by-hp-mouse-with-steelseries/12733342

# Описание

Модуль состоит из двух частей

1. Парсер и сохранение информации в БД

2. Админка ассоциации данных

Для упрощения развёртывания используется vagrant. Система контроля версий Git.

## Требования к парсеру

1. Консольные команды сущностей разделены, если это возможно. Категории, страницы продукта, список файлов - это три разные консольные команды

2. Повторный запуск команды не приводит к удалению информации, а лишь обновляет её. Особенно это важно по хранению сущностей основного проекта

3. Все данные получаемые от производителя кэшируется "как есть", это позволяет перенастраивать парсер без необходимости повторной закачки данных

4. Чтобы парсинг данных можно было легко перенастраивать для разбора используется DOM модель документа

```

./yii parser-amd/parse/tree

./yii parser-amd/parse/files

./yii parser-amd/parse/operation-system

```

## Требования к админке

1. Реализовать ассоциации сущностей: типы оборудования, операционные системы, типы файлов, серии продукта, продукты

2. Типы оборудования и серии на выводе сводить к дереву

## Зависимости и технический стек

* php >= 7.2

* mariadb >= 10.2

* Yii > 2.15.0

# Что уже решено в скелетоне

0. Тестовый рабочий код на примере парсера AMD

1. Организация и подключение модуля Yii2

2. Обертка для работы с DOM делающая работу с DOM удобнее. https://github.com/bezdelnique/parser-toolbox

3. Все взаимодействие с источником данных вынесено в отдельный класс: `helpers/Downloader.php`

4. Реализация массовых вставок в БД с сохранением данных при помощи класса `EntitiyBulk`

5. В админке реализован ассоциатор для дерева категорий и остальных сущностей

Если хотите ознакомиться со скелетоном пришлите ваш логин bitbucket.org

Подробное описание требований и описание как развернуть проект 

https://gist.github.com/bezdelnique/9371e0fe2f2dd954f5927dfe40dd0a17

5 лет назад
heman
42 годаРоссия
5 лет в сервисе
Был
5 лет назад