次の 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")
)
プリント(スープ)
プリント:
これは見出しです
これはテキストです
これは段落です。