Вообще делю процесс на несколько этапов.
Получаю страницу.
через str_pos и substr получаю нужный участок страницы, восстанавливаю через tidy_repair_string ,
а далее что-то вроде условия if (!preg_match(...)) { $dom new DomDocument(); ... } вот такая схема...