Ответ 1
Я использовал HTMLAgilityPack в прошлом с некоторым успехом, но у него были некоторые проблемы с синтаксическим разбором HTML, который плохо сформирован или отсутствует закрывающие теги. Однако это было около 2 лет назад.
Обычно я обычно склонялся к SGMLReader, который позволяет обернуть его с помощью XML-ридера, и поэтому вы можете легко использовать XDocument или XmlDocument в С# для чтения HTML. SGMLReader работал над всеми искаженными HTML, которые я выбрал для него.