[英]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.