Это должно работать. Если вы используете bs4 4.7.0, вы можете использовать select. Но если вы используете более старую версию или просто предпочитаете интерфейс поиска, вы можете использовать это. Как было сказано ранее, вы не можете ссылаться на контент с #
, то есть идентификатором.
import bs4
markup = """
<td>Net Taxes Due</td>
<td class="value-column">$2,370.00</td>
<td class="value-column">$2,408.00</td>
"""
# Version 4.7.0
soup = bs4.BeautifulSoup(markup, "html.parser")
cells = soup.select('td:contains("Net Taxes Due") ~ td.value-column')
cells = [ele.text.strip() for ele in cells]
print(cells)
# Version < 4.7.0 or if you prefer find
soup = bs4.BeautifulSoup(markup, "html.parser")
cells = soup.find('td', text="Net Taxes Due").find_next_siblings('td')
cells = [ele.text.strip() for ele in cells]
print(cells)
Вы бы получили это
['$2,370.00', '$2,408.00']
['$2,370.00', '$2,408.00']