Beautifulsoup Текст из таблицы, используя тот же тег Span - PullRequest
0 голосов
/ 01 марта 2020

При использовании Beautifulsoup для извлечения текста из таблицы, я не могу извлечь текст из-за нескольких текстов в одном и том же.

Я использовал следующие коды -

results = soup.find_all('span', class_="crux-body-copy crux-body-copy--small--bold")
results[0]

Я получаю следующие результаты

<span class="crux-body-copy crux-body-copy--small--bold">
LATCH connections
<span class="product-model-tooltip">
<span aria-hidden="true" class="crux-icons crux-icons-help-information"></span>
<span class="product-model-tooltip-window">
<span aria-hidden="true" class="crux-icons crux-icons-close"></span>
<span class="crux-body-copy crux-body-copy--small--bold">LATCH connections</span>
<span class="crux-body-copy crux-body-copy--small">Type of LATCH connection.
</span>
</span>
</span>
</span>

Затем я попытался получить текст

results[0].get_text()

дает мне

'\nLATCH connections\n\n\n\n\nLATCH connections\nType of LATCH connection.\n\n\n\n'

Затем я использовал

results[0].get_text().replace('\n', '')

и я получаю

'LATCH connectionsLATCH connectionsType of LATCH connection.'

Все, что мне нужно, это «Соединения защелки» и «Тип соединения защелки» в виде двух столбцов.

Не могли бы вы помочь.

1 Ответ

3 голосов
/ 01 марта 2020

На самом деле, есть много способов сделать это. Одним из способов является:

После того, как вы найдете по классу, вам нужно снова найти по тому же имени класса, например, как

parent_span= soup.find('span', class_="crux-body-copy crux-body-copy--small--bold")
result = parent_span.find('span', class_="crux-body-copy crux-body-copy--small--bold")
print(result.text)

, если вы хотите выбрать только один тег, вам не нужно использовать find_all. Просто используйте find.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...