python處理p標籤裡面多餘的class 和 其它標籤[html內容處理]
阿新 • • 發佈:2022-03-01
1、去掉p標籤自帶的class
2、去掉p標籤裡面的其他標籤
text = """<p><img src="https://www.yikaow.com/upload/images/2019/6/2711221356.jpg" alt="《風雨哈佛路》原型" /></p><p class="cintro"><span class="red">回答</span>《風雨哈佛路》的原型是全美“奇蹟女孩”莉茲·默裡,講述的是她從流浪女以自強不息的奮鬥精神考上哈佛的勵志經歷,激勵人們跨越困境去追尋心中的夢想。在2003年4月7日的時候,這本圖書的同名電影《風雨哈佛路》在美國上映,還獲得了第55屆艾美獎3項提名。</p>"""
步驟
1、使用正則去除p標籤
inner_text = re.findall(r'<p[^>]*>(.*?)</p>', text)
>>>輸出結果
['<img src="/uploads/images/2019-6-2711221356.jpg" alt="《風雨哈佛路》原型" />', '<span class="red">回答</span>《風雨哈佛路》的原型是全美“奇蹟女孩”莉茲·默裡,講述的是她從流浪女以自強不息的奮鬥精神考上哈佛的勵志經歷,激勵人們跨越困境去追尋心中的夢想。在2003年4月7日的時候,這本圖書的同名電影《風雨哈佛路》在美國上映,還獲得了第55屆艾美獎3項提名。']
2、新建一個空字串,使用for迴圈遍歷inner_text,再使用正則匹配span標籤裡面的內容,sub函式進行替換
new_text = "" for inner in inner_text: new_inner = re.sub(r'<\w+[^>]*>([^<]+?)</\w+>', '\g<1>', inner) new_text += f"<p>{new_inner}</p>"
<<<輸出結果
<p><img src="/uploads/images/2019-6-2711221356.jpg" alt="《風雨哈佛路》原型" /></p><p>回答《風雨哈佛路》的原型是全美“奇蹟女孩”莉茲·默裡,講述的是她從流浪女以自強不息的奮鬥精神考上哈佛的勵志經歷,激勵人們跨越困境去追尋心中的夢想。在2003年4月7日的時候,這本圖書的同名電影《風雨哈佛路》在美國上映,還獲得了第55屆艾美獎3項提名。</p>