Я разрабатываю программу, которая считывает результаты соревнований по спортивному ориентированию с веб-страниц, извлекает данные с помощью регулярных выражений и проводит некоторый анализ данных. Типичную страницу можно увидеть здесь: http://obasen.orientering.se/winsplits/online/sv/table.asp?databaseId=67772&categoryId=2 Хотя программа использует WPF, веб-браузер имеет вид Windows Формы:
<WindowsFormsHost Width="390" Margin="0 0 20 0" Height="0">
<wf:WebBrowser x:Name="wb" ScriptErrorsSuppressed="True" DocumentCompleted="Wb_DocumentCompleted"/>
</WindowsFormsHost>
Веб-содержимое получается с помощью кода:
wb.Navigate(address);
string str = wb.DocumentText;
где address - вышеуказанный веб-адрес.
Источник страницы для вышеуказанной страницы довольно грязный, но если мы сконцентрируемся на втором конкуренте (Тобиас Гелиус), HTML код на странице для второго ряда для этого участника:
<TR id="2_1" onMouseOver="highlight(2,true)" onMouseOut="highlight(2,false)">
<TD class="C1">Snättringe SK</TD>
<TD class="C37"><A title="-0.11">2.07</A></TD><TD class="C23">(1)</TD>
<TD class="C22"><A title="-0.17">5.42</A></TD><TD class="C23">(1)</TD>
<TD class="C21"><A title="+0.45">8.05</A></TD><TD class="C20">(3)</TD>
<TD class="C38"><A title="+1.31">10.53</A></TD><TD class="C39">(6)</TD>
<TD class="C38"><A title="+1.19">12.25</A></TD><TD class="C39">(5)</TD>
<TD class="C21"><A title="+1.17">17.36</A></TD><TD class="C20">(3)</TD>
<TD class="C21"><A title="+0.53">21.17</A></TD><TD class="C20">(3)</TD>
<TD class="C21"><A title="+0.39">27.21</A></TD><TD class="C20">(3)</TD>
<TD class="C21"><A title="+0.01">30.52</A></TD><TD class="C20">(2)</TD>
<TD class="C21"><A title="+0.29">36.32</A></TD><TD class="C20">(2)</TD>
<TD class="C21"><A title="+0.30">37.33</A></TD><TD class="C20">(2)</TD>
<TD class="C5">Snättringe SK</TD></TR>
Суммарное время пробега в контрольных точках составляет 2,07, 5,42, 8,05 и т. д. c, и позиция в гонке определяется число в скобках (1), (1), (3), (6) и т. д. c.
Когда я читаю страницу с вышеуказанным кодом, я получаю следующие данные:
<TR id=\"2_1\" onMouseOver=\"highlight(2,true)\" onMouseOut=\"highlight(2,false)\">
<TD class=\"C1\">Sn�ttringe SK</TD>
<TD class=\"C22\">2.07</TD>
<TD class=\"C14\">5.42</TD>
<TD class=\"C13\">8.05</TD>
<TD class=\"C23\">10.53</TD>
<TD class=\"C23\">12.25</TD>
<TD class=\"C13\">17.36</TD>
<TD class=\"C13\">21.17</TD>
<TD class=\"C13\">27.21</TD>
<TD class=\"C13\">30.52</TD>
<TD class=\"C13\">36.32</TD>
<TD class=\"C13\">37.33</TD>
<TD class=\"C4\">Sn�ttringe SK</TD></TR>
Как видно, много информации отсутствует, особенно значения позиций. Есть ли способ прочитать эти значения позиции?