BeautifulSoup
を使用してテキストを抽出しようとしています。この目的のためにget_text()
関数を使用しています。
私の問題は、テキストに</br>
タグが含まれていることと、それらを終了行に変換する必要があることです。これどうやってするの?
正規表現でうまくいくはずです。
import re
s = re.sub('<br\s*?>', '\n', yourTextHere)
お役に立てれば!
BeautifulSoupオブジェクト自体、またはその任意の要素を使用して、これを行うことができます。
for br in soup.find_all("br"):
br.replace_with("\n")
公式ドキュメント が言うように:
テキストのビットを結合するために使用する文字列を指定できます:soup.get_text( "\ n")
タグを\ nで置き換える代わりに、重要なすべてのタグの最後に\ nを追加する方がよい場合があります。
@petezurichからリストを盗むには:
for elem in soup.find_all(["a", "p", "div", "h3", "br"]):
elem.append('\n')
Ianとdividebyzeroの投稿/コメントに追加すると、これを行うことでmanyタグを効率的にフィルタリング/置換できます。
for elem in soup.find_all(["a", "p", "div", "h3", "br"]):
elem.replace_with(elem.text + "\n\n")