Я думаю, что это больше вопрос переполнения стека, но я постараюсь ответить.
Из того, что вы говорите, кажется, что вам нужен универсальный сканер. Есть несколько решений. И написать свой относительно легко.
Проблема в том, что php и curl работают медленно. И, скорее всего, вы можете ввести проблемы с памятью и время выполнения скрипта. Php просто не предназначен для работы в бесконечном цикле.
Как мне это сделать с пользовательским сканером:
Респект robots.txt! Уважайте количество подключений!
Php: сверните URL, загрузите его в dom (ленивый) или проанализируйте все теги (для следующих ссылок), затем загрузите все теги img. Добавьте тег hrefs в hashmap и очередь. hashmap не пересматривать уже посещенные. Очередь - на следующую работу. Промыть, повторить и вы в деле.
Java: сканер Webdriver + chrome + browsermob может быть выполнен в несколько строк кода. и вы поймете некоторые вещи, которые вы пропустите. Медленно, но легко и лениво. Вы будете перехватывать все изображения прямо с прокси.
Java / C #: правильный, асинхронный, высокопроизводительный сканер с чем-то наподобие magestic 12 html parser сзади. Вы можете обработать до 2000 страниц в минуту и выиграть вечную ненависть любого веб-мастера.
Вы также можете взглянуть на lucent - часть проекта apache.