如何構建 Beautifulsoup 過濾器?


給出以下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") ) 打印(湯)

打印:





這是一個標題

這是一段文字

這是一個段落。