簡體   English   中英

從變形的HTML標記中提取文本 <br> 分離元素

[英]extracting text from mangled html tag with <br> separating the elements

所以我有這個HTML片:

<p class="tbtx">


                              MWF



<br></br>

TH
</p>

似乎完全被破壞了。 我需要提取數據,即['MWF','TH']。

我唯一想到的解決方案是替換html中的所有換行符和空格,然后將其拆分為
並重建html結構,然后解壓縮.text,但這有點荒謬。

有什么合適的解決方案嗎?

.stripped_strings是您要尋找的-它刪除了不必要的空格並返回字符串。

演示:

from bs4 import BeautifulSoup

data = """<p class="tbtx">


                              MWF



<br></br>

TH
</p>"""

soup = BeautifulSoup(data)
print list(soup.stripped_strings)  # prints [u'MWF', u'TH']

您可以使用filter和BeautifulSoup從HTML代碼段中僅提取文本來執行此操作。

from bs4 import BeautifulSoup

html = """<p class="tbtx">


                              MWF



<br></br>

TH
</p>"""

print filter(None,BeautifulSoup(html).get_text().strip().split("\n"))

輸出:

[u'MWF', u'TH']

我建議使用正則表達式提取文本

例如,如果您的html如您所述:

"
<p class="tbtx">


                              MWF



<br></br>

TH
</p>
"

我們可以看到所需的文本(“ MWF”,“ TH”)被空格字符包圍。

因此,正則表達式(“ \\ s \\ w + \\ s”)讀取“查找由空白字符包圍的任何單詞字符集”,並將標識所需的文本。

這是用於創建正則表達式的備忘單: http : //regexlib.com/CheatSheet.aspx?AspxAutoDetectCookieSupport=1

您可以在此處在所需文本上測試正則表達式: http : //regexpal.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM