Skip to content

Краулер сайта. Домашнее задание для Школы разработки интерфейсов 2023 Яндекса. Для лекции по Node.js

Notifications You must be signed in to change notification settings

mshornikov/node-crawler

Repository files navigation

Краулер сайта

Задание

Все языки Node.js 16.17.0

Ограничение времени 20 секунд 1 секунда

Ограничение памяти 189.1 Мб 1.7 Кб

Ввод стандартный ввод или input.js

Вывод стандартный вывод или output.txt

Условие

Компания, занимающаяся разработкой сайтов, столкнулась с проблемой: их клиенты жаловались на низкую посещаемость сайтов.

Оказалось, что многие страницы не были проиндексированы поисковыми системами из-за отсутствия ссылок на них.

Вам необходимо написать программу-краулер с использованием Node.js, которая будет проходить по указанному URL-адресу обходить все страницы на сайте и собирать список всех ссылок на другие страницы.

Таким образом можно будет убедиться, что все страницы сайта проиндексированы поисковыми системами и доступны для пользователей.

Предусловия

  • версия Node.js - v16.13.0
  • из npm модулей можно использовать только express.js
  • команда запуска сервера node src/server.js
  • для получения содержимого доменов используется поставляемая библиотека fetcher, использовать другие библиотеки нельзя
  • сервер должен запускаться на порту 3000
  • не использовать рекурсию
  • максимальное количество ретраев при ошибках сервера не более 1

Формат отправляемых данных

Необходимо весь код поместить в папку src, после чего необходимо заархивировать папку src - в файл src.zip и загрузить архив на проверку в контест

Обратите внимание

Очень важно, чтобы в итоговом решении fetcher был импортирован следующим образом

const { fetcher } = require('../fetcher.js');

Описание ручек

Краулер должен собрать со всех страниц уникальные и действительные адреса страниц и сохранить их в массив.

Ссылка для парсинга: POST http://localhost:3000/parse body: { domainName: string} returns: string[]

Скачать вложения можно по ссылке

(Вложение скачано в папке fetcher/)

Если используете typescript - в src.zip должно находиться уже скомпилированное в js приложение с файлом server.js для запуска и остальными файлами.


Ссылка на лекцию в YouTube

Ссылка на полную запись с закрытой частью и вопросами в Yandex Disk

Ссылка на задание

About

Краулер сайта. Домашнее задание для Школы разработки интерфейсов 2023 Яндекса. Для лекции по Node.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published