Паррсер-краулер на Go

30 000 руб. за проект
27 апреля 2024, 16:38 • 11 откликов • 83 просмотра
Цели проекта:

Разработка краулера на языке Golang, предназначенного для сканирования веб-сайтов с целью выявления SEO-ошибок. Краулер должен быть интегрирован в существующий сервис, предоставлять данные для последующего анализа и поддерживать многопоточное выполнение заданий.

Основные требования:

  • Модульность: Краулер должен быть реализован как отдельный модуль, способный интегрироваться с существующими системами.
  • Эффективность и минимальная нагрузка: Краулер должен эффективно использовать системные ресурсы, обеспечивая минимальную нагрузку на сканируемые сайты.
  • Конфигурируемость: Все параметры настройки краулера должны браться из базы данных MySQL.
Функциональные требования:

  • Сбор базовых SEO-данных:
    • HTTP статус коды страниц.
    • Наличие и корректность тегов <title>, <meta name="description">.
    • Наличие H1 и их уникальность в пределах одной страницы.
    • Проверка наличия атрибутов alt у изображений.
    • Проверка наличия внешних ссылок
    • Анализ на наличие https протокола для обеспечения безопасности соединения.
    • Сбор внутренних ссылок с привязкой к странице, с которой идет ссылка и какой статус отдает.
  • Поддержка robots.txt: Краулер должен учитывать файл robots.txt сайтов, не обрабатывая запрещённые для индексации страницы и ресурсы.
  • Многопоточность: Краулер должен быть многопоточным и способен выполнять одновременно несколько заданий.
  • Уведомления о завершении задания: По завершению каждого задания краулер должен отправлять вебхук на заданный URL.
  • Работа как сервис: Краулер должен работать в режиме демона или сервиса, который может управляться посредством HTTP запросов.
  • Получение статусов заданий по HTTP: Возможность получения текущего статуса заданий через HTTP запросы.
Технические требования:

  • Использование Go: Краулер должен быть написан на языке программирования Go.
  • Библиотеки: Рекомендуется использование библиотеки Colly для краулинга и Goquery для парсинга HTML-документов.
  • Логирование: Необходима система логирования для отслеживания ошибок и предупреждений в процессе работы краулера.
  • Конфигурация: Параметры краулера должны задаваться через внешний конфигурационный файл и храниться в базе данных MySQL.
Разработка:

  • Разработка: Код должен быть чистым, хорошо структурированным и соответствовать стандартам кодирования Go.
  • Документация: Разработать подробную документацию по работе с краулером, включая описание параметров конфигурации, инструкции по управлению сервисом и получению статусов заданий через HTTP.