Бюджет: 10000 UAH Срок: 1 день
Добро пожаловать! Задача интересна, готова выполнить ее для вас, с возможностью масштабирования и в будущем добавления новых эндпоинтов.
Требуется разработать и запустить сервис (далее - Сервис) доставки
структурированных данных о вакансиях, размещенных на различных сайтах в сети
Интернет (далее - Источниках). Для каждого Источника Сервис должен предоставлять
свой endpoint, например, для Источника SuperRabota.ru Сервис должен обрабатывать
GET-запрос к адресу https://<your.domain>/superrebota.
Бюджет: 10000 UAH Срок: 1 день
Добро пожаловать! Задача интересна, готова выполнить ее для вас, с возможностью масштабирования и в будущем добавления новых эндпоинтов.
Это что же, при обращении к странице (эндпоинту) нужно просто отдавать содержимое БД, или же парсить данные на какую-то глубину по связанному источнику?
Техническое задание на разработку сервиса доставки данных о вакансиях
Требуется разработать и запустить сервис (далее - Сервис) доставки структурированных данных о вакансиях, размещенных на различных сайтах в сети Интернет (далее - Источниках). Для каждого Источника Сервис должен предоставлять свой endpoint, например, для Источника SuperRabota.ru Сервис должен обрабатывать GET-запрос к адресу https://<your.domain>/superrebota.
Параметры GET-запроса
Параметр
Обязательный
Тип
Описание
region
true
string[] | int[]
?region[]=1®ion[]=2
или
?region[]=yar-obl
Список значений для каждого источника согласовывается отдельноkey
true
string
Уникальный ключ доступа к Сервису. Предоставляется разработчиком Сервиса.
В ответ на GET-запрос Сервис должен вернуть данные, появившиеся в Источнике с момента последнего запроса, в json-формате в следующем виде:
{
"request_id": "...", // required, уникальный идентификатор запроса, см. ниже
"employers": [
"id": "...", // required, ID работодателя в Источнике
"company_name": "...", // required, Название работодателя
"company_email": "...", // required, если отсутствует телефон; email работодателя
"contact_phone": "...", // required, если отсутствует email; телефон работодателя
"profarea": "...", // Профессиональная область
"vacancies": [
"id": "...", // required, ID вакансии в Источнике
"link": "...", // required, ссылка на вакансию
"speciality": "...", // required, Заголовок вакансии
"address": "...", // адрес работы
"is_remote": "...", // boolean, возможен ли удаленный формат работы
"work_type": "...", // Тип занятости
"work_schedule": "...", // График работы
"work_experience": "...", // Требуемый опыт
"salary_monthly": "...", // Зарплата в месяц
"education": "...", // Требуемое образование
"city": "...", // Город
"duties": [], // Обязанности, массив строк
"skills": [], // Требуемые навыки, массив строк
"no_skills_needed": "...", // boolean, true если навыки не требуются
"qualities": [], // требуемые качества, массив строк
"description": "..." // описание вакансии
],
...
],
...
}
Через некоторое время после GET-запроса будет отправлен POST-запрос на тот же endpoint, содержащий идентификатор запроса и количество успешно обработанных вакансий. Например:
POST https://<your.domain>/hh
{
"request_id": "...",
"count": "...",
}
Вакансия не считается успешно обработанной, если
Не заполнены все обязательные поля
Вакансия была загружена ранее
Попробую сформулировать минимальную задачу за Вас. Нужно: парсить сайт https://rabota.ru . Сразу нужно собрать все (?) вакансии на глубину NN дней. Обеспечить сохранение собранного материала с целью недопущения повторных запросов. Скорость парсинга не должна быть выше/ниже чем N1 запросов в час.
По запросам в сторону эндпоинта учитывать ... И так далее.