Задача: распарсить HTML страницу

Задача: разобрать несколько десятков тысяч HTML страниц. На страницах таблицы и <div> теги, в которых находятся данные. Количество форматов ограничено – порядка сорока разных форматов для страниц.

Требуемое решение: простой универсальный способ разбора HTML страниц в чистом C# коде.

У меня есть несколько самописных решений – одно на RegEx, другое на конвертации в XНТML  и разборе XPath выражениями (LINQ2XML). Все разной степени кривизны. Поэтому прошу совета, идеи, фрагментов кода – как это сделать максимально гибко и красиво. В идеале код должен быть насколько простым, чтобы его можно было отдать очень начинающему разработчику и он смог бы его модифицировать под разные страницы.

Принялся было писать движок парсера со своим языком описания шаблонов, но в последний момент программерский ангел хранитель дал по ушам и сказал, что лишние велосипеды не нужны.

Выбрали решения @sdelaisam и @outcoldman, поэтому подарю две флешки. Коллеги, шлите в мыло почтовые адреса, телефоны и ФИО - флешки ждут :)