Я вижу две проблемы, которые нужно решить.
Первый: у вас нет реального центрального каталога всех URL-адресов в мире, и даже у вас не будет карты сайта на каждом сайте, который вы знаете
Идея состояла бы в том, чтобы проверить, позволяет ли поисковая система (Google или другая) работать на уровне URL вместо уровня контента для поиска. Затем вы сгенерируете поисковый запрос, который может вернуть список сайтов, соответствующих вашему регулярному выражению, и попытаетесь это сделать.
Второй: для некоторых веб-сервисов, которые могут предоставлять функции в качестве ресурсов, у вас может быть бесконечный список URL, соответствующий регулярному выражению
Вы можете использовать несколько проверок, чтобы избежать этого.
Кстати, вы сталкиваетесь с той же проблемой, что и каждая поисковая система ... проводя инвентаризацию всей сети. Никто никогда не решал эту проблему.
EDIT:
webcrawler
основной алгоритм
take a list of seed sites
for each seed
parse the webpage returned
add each link found in the page to the seed list
apply some algorithms for referencing the page to several keywords in a db