У меня есть документ с несколькими строками, который имеет значение в 4-м элементе TD, и я не могу понять, как его получить.В тегах нет ничего уникального, поэтому я должен сопоставить, основываясь на слове TOTAL, а затем получить нужное мне значение из 4-го TD в существующей строке.Это один TR для иллюстрации:
<TR>
<TD ALIGN="right" COLSPAN="30" bgcolor=d8caca><div class=small4>SECTION TOTAL</div></TD>
<TD ALIGN="right" COLSPAN="8" bgcolor=d8caca> </TD>
<TD ALIGN="right" COLSPAN="13" bgcolor=gold><div class=small4> 11.907531</div>
</TD>
<TD ALIGN="right" COLSPAN="13" bgcolor=gold><div class=small4> $773.10</div></TD>
</TR>
Я хочу сопоставить слово «ВСЕГО», а затем получить значение ровно через три ячейки, или в этом случае $ 773,10.
Этоуспешно собирает каждый текст «ВСЕГО» в массив без проблем:
titles = tree.xpath("//tr/td[contains(., 'TOTAL')]//text()")
Однако я не могу получить значения в последнем элементе.Я пробовал многочисленные варианты следующего поиска ИТОГО, а затем пытался использовать следующего или следующего брата, но безрезультатно:
totals = tree.xpath("//tr/td[contains(., 'TOTAL')]/../following::td[4]/div/text()")
... но я либо получаю массив неразрушаемыхпространство от ближайшего следующего TD после ИТОГО, вообще никаких данных или ссылок на «элементы», которые при расширении до текста равны нулю.Как правильно получить значение внутри td [4] в существующем TR после сопоставления содержимого?
Я пытаюсь получить каждый случай, а не только один, чтобы массивы заголовков и итогов составляли 1: 1 совпадение.Если есть способ создать пару ключ => значение, это было бы еще лучше.