簡體   English   中英

美麗的湯刪除標簽錯誤

[英]Beautiful Soup Remove Tag Error

因此,我正在抓取一些內容,並嘗試使用python中的beautifulsoup去除html標簽,但保留內容。 例如,給定:

<p>Hello, how <b>are</b> you</p>

我想要輸出:

Hello, how are you

通常,我將使用get_text方法。 問題是,顯然我正在抓取的某些頁面中存在html錯誤。 例如:

<p>Hello, how </b><b>are</b> you</p>

發生這種情況時,get_text()結束時會剝離出我想要的大部分文本。 我嘗試使用正則表達式來代替它,但最終遇到了同樣的問題:

    description = re.sub("<.[^/<>]*>", "", str(description))    
    description = re.sub("</.[^/<>]*>", "", str(description))   

有人知道解決此問題的方法嗎? 提前致謝。

BeautifulSoup樹將所有元素表示為對象; 您無法在樹生成后使用正則表達式來“修復”損壞的HTML。

BeautifulSoup將其留給解析器來構建樹,然后由解析器決定如何處理損壞的HTML。 不同的解析器以不同的方式處理損壞的HTML。

您應該對輸入使用不同的解析器 ,以了解它們將如何處理您的輸入。 標准的html.parser選項處理損壞的HTML的能力比其他選項差,而html5lib選項最接近現代瀏覽器處理損壞的HTML的方式,盡管其速率比lxml處理HTML解析的速度慢。

暫無
暫無

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

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