Возможно ли написать универсальный парсер сайтов?
И да, и нет: у вас очень расплывчатая формулировка. Непонятно, насколько осмысленным и обработанным должен быть итоговый результат, насколько допустим мусор.
Скачать страницу, построить дерево документа и какими-то элементарными эвристиками вырезать ненужное (меню, сайдбары, подвалы, рекламу и т.п.) относительно просто, но результат будет довольно грубый с неудовлетворительным соотношением сигнал/шум.
Для повышения универсальности инструмента, потребуется увеличивать количество и сложность этих эвристик. А ещё можно подключить туда машинное обучение, чтобы они сами себя улучшали.
И вот вы уже хотите написать что-то вроде поискового паука. Представьте, сколько сил вложено в разработку паука Яндекса или Гугла. У вас есть такие возможности? А ведь мало его просто написать, надо поддерживать, следить за новыми стандартами...
Парсинг сайтов - это задача, которая легко решается людьми, но плохо даётся роботам. Если смотреть с точки зрения бизнеса, то гораздо дешевле и эффективнее будет посадить джуниора, который будет писать отдельные правила парсинга под каждый сайт, чем пытаться конкурировать с Гуглом.
Этим поисковые системы уже второе десятилетие занимаются. Вроде получается, но оцените трудозатраты.