getText () против text () против get_text ()

1

У меня есть фрагмент html, извлеченный с помощью bs4, как показано ниже.

<div class="a-section a-spacing-small" id="productDescription">
<!-- show up to 2 reviews by default -->
<p>Satin Smooth Universal Protective Wax Pot Collars by Satin Smooth</p>
</div>

Чтобы извлечь текст, я использовал text.strip()

output.text()

Это дало мне выход "TypeError: 'str' object is not callable"

В то время как я использовал output.get_text() и output.getText(), я получил желаемый текст

Каковы различия между этими 3? почему get_text() и getText() дают тот же результат?

Теги:
python-3.x
beautifulsoup

1 ответ

2
Лучший ответ

Они очень похожи:

  • .get_text - это функция, которая возвращает текст тега в виде строки
  • .text - свойство, которое вызывает get_text (поэтому оно идентично, за исключением того, что вы не используете скобки)
  • .getText - это псевдоним get_text

Я хотел бы использовать .text когда это возможно, и .get_text(...) когда вам нужно передать пользовательские аргументы (например, foo.get_text(strip=True, seperator='\n')).

  • 0
    Спасибо! Я только что обнаружил, что печать output.p.contents также дает мне текст в списке с вкладками и новыми строками.
  • 0
    Опечатка: expect -> except
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню