Цитата v79italya:
Значит, обработка в Power Query за минуту не такой уж и медленный вариант. »
|
Если результат устраивает, то можно считать быстро...
Вот парсер на powershell
Код:

$infile = '15p.html'
$outfile = '15p_out.csv'
$timefile = 'time.txt'
measure-command{
$skip = 2 # Пропуск первых строк таблицы, для формирования заголовков
$html = new-object -com "HTMLFile"
$html.ihtmldocument2_write($(gc $infile -raw -enc utf8))
$table = $html.getelementsbytagname("table")
$tr = $table[0]|%{$_.getelementsbytagname("tr")}
$head = $tr[$skip]|%{$_.getelementsbytagname("td")}
$rowind = ,1 * $head.count
$headers = $null
$tr[$skip..$tr.count]|%{
$row = $_.getelementsbytagname("td") | select innertext,rowspan,colspan
if ($headers) {
$str = [ordered]@{}
$rowspan = new-object 'int[]' $head.count
$k=0
foreach ($item in $row){
while ($rowind[$k] -gt 1){
$str[$headers[$k]] = $null
$rowind[$k] -= 1
$rowspan[$k] = 1
$k++
}
$str[$headers[$k]] = $item.innertext.trim()
$rowspan[$k] = $item.rowspan
$k++
}
for($i=0;$i -lt $rowind.count;$i++){
if ($rowspan[$i] -gt 1){$rowind[$i] = $rowspan[$i]}
}
[pscustomobject]$str
} else {
$headers = $row.innertext.trim()
}
}|export-csv $outfile -notype -enc utf8 -d ';'
}|out-file $timefile
Возможно, не оптимально, но что уж получилось...
rowspan-ы учитываются...
colspan-ы не учитываются...
Пробуйте... у меня парсился файл 11 минут.