Вопрос по beautifulsoup – Конвертировать </ br> в конец строки

24

Я пытаюсь извлечь текст, используяBeautifulSoup, Я используюget_text() функция для этой цели.

Моя проблема в том, что текст содержит</br> теги и мне нужно преобразовать их в конец строки. как я могу это сделать?

Ваш Ответ

4   ответа
5

import re
s = re.sub('<br\s*?>', '\n', yourTextHere)

Надеюсь это поможет!

0

Добавляя к постам / комментариям Яна и divybyzero, вы можете сделать это для эффективной фильтрации / замены.many теги за один раз:

for elem in soup.find_all(["a", "p", "div", "h3", "br"]):
    elem.replace_with(elem.text + "\n\n")
21

Какофициальный документ говорит:

You can specify a string to be used to join the bits of text together: soup.get_text("\n")

Это должен быть принятый ответ.
Кажется, что "биты текста" это слова, а не строки, так что это добавило бы новую строку между каждыми 2 словами.
54

используя сам объект BeautifulSoup или любой его элемент:

for br in soup.find_all("br"):
    br.replace_with("\n")
Остерегайтесь этого, вы можете потерять часть содержимого непреднамеренно. Возможно, вам нужно сделать что-то вродеbr.replace_with("\n" + br.text), Этот тег злой ...
Преимущество этого ответа в том, что вы можете позвонитьsoup.text впоследствии удалить другие теги html, тогда как принятый в настоящее время ответ не предоставляет такой возможности.

Похожие вопросы