Beautifulsoup フィルターの作成方法

次の HTML コードを与える:

これは見出しです

これは段落です。

抽出したい (元の順序で):

これは見出し、これはテキスト、これは段落です。

どうすればいいですか?

Beautifulsoup4 をこんな風に使ってみました:

def text_from_html(body):
スープ = BeautifulSoup(body, 'html.parser')
テキスト = スープ.findAll(string=True)
return u" ".join(t.strip() for t in texts)

html = '''''' # 上記の値

しかし、それは欠けています:

これはテキストです

出力は次のとおりです:

これは見出しです これは段落です。

お試しください:

from bs4 import BeautifulSoup

html_doc = """\

これは見出しです

これは段落です。

"""

スープ = BeautifulSoup(html_doc, "html.parser")

soup.select("input[type=text][value]") の inp の場合:
inp.replace_with(inp["値"])

t = スープ.get_text(ストリップ = True, セパレーター = ")
印刷(t)

プリント:

これは見出しです これはテキストです これは段落です。

編集:

soup.select("input[type=text][value]") の inp の場合:
inp.replace_with(
BeautifulSoup("

{}

".format(inp["value"]), "html.parser")
)

プリント(スープ)

プリント:

これは見出しです

これはテキストです

これは段落です。