Получить из доменов адреса главных страниц

10 000 руб. за проект
14 августа 2024, 10:48 • 18 откликов • 81 просмотр
Нужен инструмент на php, который по доменам массово умел бы определять адреса главных страниц сайтов.

Как работает в жизни: если забиваем в браузер доменное имя ya.ru, то откроется https://ya.ru/ . https://ya.ru/ - это и есть результат, который должен выдать инструмент для домена ya.ru.

Алгоритм работы такой:

  • Считаем, что все добавленные в инструмент домены имеют незащищённый протокол. В данном примере мы добавили в инструмент ya.ru, поэтому точка старта http://ya.ru (без слеша на конце).
  • Проверяем у http://ya.ruответ сервера.
  • Если у http://ya.ru ответ сервера 200, то это и есть результат, который нужно выдать.
  • Если у http://ya.ru ответ сервера 302 или 301 редирект, то нужно получить ресурс, куда ведёт этот редирект.Например, 301 редирект ведёт на http://www.ya.ru .
  • У полученного на предыдущем этапе ресурса http://www.ya.ru:
    • Проверяем ответ сервера. Если опять 301 или 302 редирект, то цикл повторяется снова: снова определяем ресурс, куда ведёт редирект и получаем ответ сервера этого ресурса.
    • На каждом круге цикла проверяем принадлежность к исходному домену. Если домен сменился, то есть редирект с http://ya.ru привел, например, на сайт https://google.ru , то такой домен исключаем из дальнейшей работы.
    • Если на любом этапе цикла ответ сервера оказался не 200, и не 301, и не 302, то домен также исключаем из дальнейшей работы. Работаем только с этими тремя ответами сервера.
    • Если адреса начали повторяться, то цикл нужно остановить и домен также исключить из работы. Например, если адрес был http://ya.ru, и через несколько итераций этот адрес снова оказался в цикле.
  • Таким образом проверяем все домены списка.
  • Удаляем дубликаты.
  • Выдаём результат в виде общего списка адресов с ответом сервера 200 в файле txt. Каждый адрес в новой строке.


По функционалу.

  • Доступ по прямой ссылке, без админки.
  • Поле для ввода списка доменов. Каждый домен с новой строки.
  • Кнопка «Пуск».
  • Кнопка «Копировать результаты», нажатием на которую результаты копируются в буфер обмена.
  • Сервис должен:
    • Пропускать пустые строки в исходном списке (не останавливаться из-за них).
    • Пропускать строки с кракозябрами, пример ответы.будьвдвижении.СЂС„
    • Корректно обрабатывать домены кириллицей: экоизыскания.рф
    • Средний объём, который будет обрабатываться в сервисе – 3-5 тыс. доменов. Однако, сервис должен выполнять и объём в 50 тыс. загруженных доменов за счёт более длительного времени.
  • Нужно вывести отображение статуса работы сервиса с указанием прогресса. Например: обработано 350 из 2580 доменов.
  • Сохранять результаты работы нигде в базе не нужно.
  • Делайте, пожалуйста, на своём хостинге. После проверки нужно будет перенести на мой и ещё раз убедиться в работоспособности.
  • Сервис будет размещаться в корневой директории сайта и открываться, например, по адресу site.ru/domain-to-url/
  • Версия php, где будет размещаться сервис - php 8.2.

Пример списка доменов https://disk.yandex.ru/d/UutZKWVr6saVOQ



В заявках указывайте, пожалуйста, цену, сроки и ссылку на ваше портфолио.