1. В БД MySQL есть список сайтов (главных страниц). Нужно сделать парсер, который будет переходить в файл /robots.txt каждого сайта поочереди, парсить ссылки sitemap и добавлять их в другой столбик этой же таблицы. У некоторых сайтов sitemap в виде файлов .tg, нужно сделать что бы такие ссылки помещал в отдельный столбик. Сделать многопоточность.
2. Далее нужно чтобы скрипт брал из БД эти xml ссылки которые спарсил и парсил в них <loc>, <changefreq>, <lastmod>, <priority> и добавлял их в ту же таблицу в другие столбики. В разные. Только нужно что бы вся эта информация была структурирована и относилась к тому домену с которого эту всю ниформацию спарсили. И нужна многопоточность, что бы можно было задавать колличество потоков. (Если каких то значений нет в файле например <lastmod>, что бы игнорировал.)
3. Далее нужно что бы скрипт брал из БД ссылки <loc> проверял что бы эта страница не 404 или не отсутствует (если отсутствует или 404 то либо что бы сразу удалял из базы, либо что бы как то помечал, что бы потом можно было её проверить и удалить если пустая ) , потом вытаскивал из них <title> и <lang> и сохранял эту информацию в эту же БД в другие столбцы. Если там уже будет <title> и <lang> для этой ссылки, что бы заменял. Потом сделать что бы выводило статистику сколько всего хостов в базе, сколько всего страниц xml в базе и сколько всего внутренних страниц в базе. Потом сделать, что бы хосты в первый столбик, можно было загружать в базу данных прямо из браузера.
4. И нужно ещё что бы он парсил все внешние ссылки которые есть на этих <loc> страницах, обрезал хвосты до главной страницы и добавлял эти главные страницы в конец первого столбика БД где хосты. Только нужно будет сделать несколько фильтров для парсинга внешних ссылок: например что бы где то можно было указывать какие зоны внешних ссылок парсить например только зоны su или su и ua , другие зоны что бы игнорировал. И что бы не добавлялись дубли внешних ссылок если вдруг такая ссылка уже есть в базе. Ещё что бы можно было выбирать какие домены парсить, только первого уровня или второго тоже парсить. И сделать что бы где то можно было указывать какие ссылки вообще игнорировать (блек лист) например ссылки на мессенджеры, добавляешь в этот список например t.me и он их все игнорирует.
Уточнение: Скрипт нужно реализовать в Web страничке. Нужны кнопки старта и остановки работы скрипта и ход выполнения (последняя информация которая была добавлениа в БД). Нужно что бы можно было запускать скрипт с трёх и более разных компьютеров, что бы они друг с другом не конфликтовали и не обрабатывали одни и те же ссылки. БД будет на всех одна.