給出以下html代碼:
這是一個標題
這是一個段落。
我要提取(按原順序):
這是一個標題,這是一個文本,這是一個段落。
我該怎麼做?
我嘗試像這樣使用 Beautifulsoup4:
def text_from_html(body):
湯 = BeautifulSoup(body, 'html.parser')
文本 = soup.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["value"])
t = soup.get_text(strip=True, separator="")
打印(t)
打印:
這是一個標題這是一個文本這是一個段落。
編輯:
for inp in soup.select("input[type=text][value]"):
inp.replace_with(
BeautifulSoup("{}
".format(inp["value"]), "html.parser")
)
打印(湯)
打印:
這是一個標題
這是一段文字
這是一個段落。