Можно использовать AngleSharp.
Ваш пример будет примерно такого вида:
var parser = new HtmlParser();
var document = parser.Parse(@"<body>
<div class='product'>
<a href='/url1.html'><img src='img1.jpg' alt=''></a>
Hello, world
<div class='comments-likes'>1</div>
<table id='menutable'>
<tr>
<td>Head1</td>
<td>Head2</td>
</tr>
<tr>
<td class='bla ble'>31</td>
<td>content</td>
</tr>
<tr>
<td class='bla ble'>32</td>
<td>content</td>
</tr>
</table>
</div>
<div class='footer'>
<a href='http://www.ya.ru/q=asdf'>
</div>
</body>");
var cells = document.QuerySelectorAll("table#menutable td.bla.ble");
foreach (var cell in cells)
{
Console.WriteLine(cell.Text());
}
Наиболее просто подключить AngleSharp при помощи механизма NuGet пакетов, встроенного в студию.
В окне Solution Explorer щелкните правой кнопкой мыши на нужном проекте и выберите пункт Manage NuGet Packages. Затем выполните поиск пакета AngleSharp (требуется подключение к интернету) и установите.
Механизм NuGet очень удобен, я рекомендую потратить некоторое время на его изучение.