Here is such a html:

<div class="middle"><table width='100%' border='0' cellspacing='0' cellpadding='0' bgcolor='#ffffff' id='forecast'> <tr> <td id="dt" class='legend' width='245' style='border-bottom: 1px solid #ddd;'> <span style="color:#333; font-size: 11px; font-weight: normal;">Прогноз <a href="/about/?information=forecast" title="Численная модель UKMET 12">рассчитан автоматически</a> без контроля и корректировки специалистом.</span><br> </td><td style='border-bottom: 1px solid #ddd;' width='10'><img src="/tpl/img/data-main.gif" alt=""></td> <td width='7%' class='dat' bgcolor="#F2F2FF">вечер, чт.<br>03 ноября</td> <td width='7%' class='dat' bgcolor="#F2F2FF">ночь, пт.<br>04 ноября</td> <td width='7%' class='dat' >утро, пт.<br>04 ноября</td> <td width='7%' class='dat' >день, пт.<br>04 ноября</td> <td width='7%' class='dat' bgcolor="#F2F2FF">вечер, пт.<br>04 ноября</td> <td width='7%' class='dat' bgcolor="#F2F2FF">ночь, сб.<br>05 ноября</td> <td width='7%' class='dat' >утро, сб.<br>05 ноября</td> <td width='7%' class='dat' >день, сб.<br>05 ноября</td> <td width='7%' class='dat' bgcolor="#F2F2FF">вечер, сб.<br>05 ноября</td> <td width='7%' class='dat' bgcolor="#F2F2FF">ночь, <font color='#EA6400'>вс.</font><br>06 ноября</td> </tr> <tr> <td class='legend'>Облачность и погодные явления</td><td>&nbsp;</td> <td class='meteo'> <img title='Облачно с прояснениями.Без осадков.' src='6/pict-40/BKNn.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Облачно с прояснениями.Без осадков.'></td> <td class='meteo'> <img title='Переменная облачность.Без осадков.' src='6/pict-40/SCTn.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Переменная облачность.Без осадков.'></td> <td class='meteo'> <img title='Облачно с прояснениями.Без осадков.' src='6/pict-40/BKN.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Облачно с прояснениями.Без осадков.'></td> <td class='meteo'> <img title='Сплошная облачность.Возможен мокрый снег.' src='6/pict-40/SNRA.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Сплошная облачность.Возможен мокрый снег.'></td> <td class='meteo'> <img title='Небольшая облачность.Без осадков.' src='6/pict-40/FEWn.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Небольшая облачность.Без осадков.'></td> <td class='meteo'> <img title='Переменная облачность.Без осадков.Дымка.' src='6/pict-40/SCTn.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Переменная облачность.Без осадков.Дымка.'></td> <td class='meteo'> <img title='Сплошная облачность.Без осадков.' src='6/pict-40/OVC.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Сплошная облачность.Без осадков.'></td> <td class='meteo'> <img title='Сплошная облачность.Без осадков.' src='6/pict-40/OVC.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Сплошная облачность.Без осадков.'></td> <td class='meteo'> <img title='Облачно с прояснениями.Без осадков.Дымка.' src='6/pict-40/BKNn.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Облачно с прояснениями.Без осадков.Дымка.'></td> <td class='meteo'> <img title='Сплошная облачность.Без осадков.Дымка.' src='6/pict-40/OVCn.png' width='40' height='40' vspace='4' hspace='6' alt='Явление погоды:Сплошная облачность.Без осадков.Дымка.'></td> </tr> <tr> <td class='legend'>Температура, °С</td><td>&nbsp;</td> <td class='meteo' title='Tmax=6.6 Tmin=4.5'>+4..+6</td> <td class='meteo' title='Tmax=4.6 Tmin=2.2'>+1..+3</td> <td class='meteo' title='Tmax=2.4 Tmin=1.6'>+1..+3</td> <td class='meteo' title='Tmax=4.3 Tmin=2.4'>+3..+5</td> <td class='meteo' title='Tmax=3.9 Tmin=0.8'>+0..+2</td> <td class='meteo' title='Tmax=0.7 Tmin=-1'>0..-2</td> <td class='meteo' title='Tmax=0.5 Tmin=-1.2'>около 0</td> <td class='meteo' title='Tmax=2.9 Tmin=0.6'>+2..+4</td> <td class='meteo' title='Tmax=2.7 Tmin=-0.3'>около 0</td> <td class='meteo' title='Tmax=-0.3 Tmin=-0.9'>0..-2</td> </tr> <tr> <td class='legend' nowrap>Скорость и направление ветра, м/с</td><td>&nbsp;</td> <td class='meteo' valign='top'> 4–6, Ю-З </td> <td class='meteo' valign='top'> 5–7, Западный </td> <td class='meteo' valign='top'> 5–7, Западный </td> <td class='meteo' valign='top'> 6–8, Западный,&nbsp;<br>порывы 11 </td> <td class='meteo' valign='top'> 4–6, Западный </td> <td class='meteo' valign='top'> 3–5, Западный </td> <td class='meteo' valign='top'> 3–5, Западный </td> <td class='meteo' valign='top'> 4–6, Западный </td> <td class='meteo' valign='top'> 2–4, Ю-З </td> <td class='meteo' valign='top'> 2–4, Южный </td> </tr> <tr> <td class='legend'>Атмосферное давление,<br>приведенное уровню моря, гПа <span style='color:#888888;'> [мм рт. ст.] </span></td><td>&nbsp;</td> <td class='meteo'>1011<br><span style='color:#888;'>758</span></td> <td class='meteo'>1013<br><span style='color:#888;'>760</span></td> <td class='meteo'>1016<br><span style='color:#888;'>762</span></td> <td class='meteo'>1018<br><span style='color:#888;'>763</span></td> <td class='meteo'>1021<br><span style='color:#888;'>766</span></td> <td class='meteo'>1023<br><span style='color:#888;'>767</span></td> <td class='meteo'>1024<br><span style='color:#888;'>768</span></td> <td class='meteo'>1024<br><span style='color:#888;'>768</span></td> <td class='meteo'>1024<br><span style='color:#888;'>768</span></td> <td class='meteo'>1022<br><span style='color:#888;'>767</span></td> </tr> <tr> <td class='legend'>Влажность, %</td><td>&nbsp;</td> <td class='meteo'>95</td> <td class='meteo'>95</td> <td class='meteo'>95</td> <td class='meteo'>90</td> <td class='meteo'>80</td> <td class='meteo'>90</td> <td class='meteo'>90</td> <td class='meteo'>75</td> <td class='meteo'>95</td> <td class='meteo'>95</td> </tr> <tr> <td class='legend'>Количество осадков, мм за 6 ч </td><td>&nbsp;</td> <td class='meteo'> — </td> <td class='meteo'> — </td> <td class='meteo'> — </td> <td class='meteo' nowrap>0.3</td> <td class='meteo'> — </td> <td class='meteo'> — </td> <td class='meteo'> — </td> <td class='meteo'> — </td> <td class='meteo'> — </td> <td class='meteo'> — </td></tr> </table></div> 

you need to get data from cells, except for 2 lines. It is necessary to select data from the attributes of the img tag. I did this, but this way I select data only from cells:

 HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html); var table = doc.DocumentNode.SelectSingleNode("//div[@class='middle']/table").Descendants("tr") .Where(tr => tr.Elements("td").Count() > 1) .Select(tr => tr.Elements("td").Skip(2).Select(td => td.InnerText.Trim()).ToList()).ToList(); 
  • It's not entirely clear what exactly you need. Write a sample of the output you want to receive. - 123_123

1 answer 1

So for the second line, instead of InnerText, the attribute will be taken:

 var table = doc.DocumentNode.SelectNodes("//div[@class='middle']/table").Descendants("tr") .Where(tr => tr.Elements("td").Count() > 1) .Select((tr, i) => tr.Elements("td").Skip(2) .Select(td => i == 1 ? td.Descendants("img").FirstOrDefault().Attributes["title"].Value.Trim() : td.InnerText.Trim()).ToList()) .ToList(); 
  • Thank. What you need - Viktor Bylbas