Итак, я пытаюсь распечатать строку таблицы, используя BeautifulSoup, но я не могу просто использовать идентификатор строки, потому что расположение строки может меняться в зависимости от пары разных переменных. Все строки имеют имена вроде trRow_1
. Мне нужно распечатать строку, содержащую текст, который я ищу, поскольку он перемещается.
Я не могу найти формулировку для печати желаемой строки, используя операторы if
.
Это то, что я пробовал, что, очевидно, не работает, но должно дать вам представление о том, чего я хочу:
table = soup1.find("table", id="tblActivities")
tablerow = table.findAll("tr")
TextIwant = tablerow.find(<span>"The Text I Want"</span>)
print(TextIWant)
Есть идеи, как это сделать?
Это элемент строки, с которым я работаю:
<tr id="trRow_5" class="changeTrOnhover" uniqueid="" rowid="2200005" action="0" postype="0" levelclass="2200005" riskcountry="United States" issuecurrency="" riskregion="" seq="5">
<!-- End positionDetail greater than 0 -->
<td>
<span class="bold"> Cash Equivalent
</span>
</td> <!-- Asset class desc -->
<td><span></span></td> <!-- price -->
<td><span></span></td> <!-- quantity -->
<!-- START PSI19 US77980 Populate values for Investment cost -->
<td class="bold"><span>
<span>52,896.91 USD
</span></span></td>
<!-- END PSI19 US77980 Populate values for Investment cost -->
<!-- base mkt -->
<td class="bold"><span>
52,896.91 USD
</span></td>
<!-- local mkt -->
<!-- perc of class -->
<td nowrap="">
<span class="bold">
6.88
</span>
</td>
<!-- perc of total mkt -->
<!-- income yield -->
<!-- moodys -->
<td><span></span></td> <!-- action -->
<!-- positionDetail = 0 -->
</tr>
soup.select_one('table#tblActivities').select('tr:has(td:contains("Cash Equivalent")) td')
Возвращает все строки таблицы.
for td in table.select('tr:has(td:contains("Cash Equivalent")) td'):
print(td.text.strip())
Это также возвращает все строки в таблице.