您的位置:首頁技術文章
文章詳情頁

python - lxml.etree為什么會自動加上加上</i>?

瀏覽:127日期:2022-06-27 17:32:13

問題描述

正在學習lxml,代碼如下:

from lxml import etreetext = ’’’<i class='cell maincell'> <p class='title'><a target='_blank' > <span>洋鼴鼠</span></a> </p> <p><span class='tags t-small c-gray-aset'> <a >電子商務</a></span><span class='loca c-gray-aset t-small'> <a >天津</a></span> </p></i>’’’html = etree.HTML(text)print(etree.tostring(html,encoding=’utf-8’).decode(’utf-8’))

輸出如下:

<html><body><i class='cell maincell'> </i><p class='title'><a target='_blank' > <span>洋鼴鼠</span></a> </p> <p><span class='tags t-small c-gray-aset'> <a >電子商務</a></span><span class='loca c-gray-aset t-small'> <a >天津</a></span> </p></body></html>

主要不理解為什么<i>標簽那里會出錯呢?請問怎么解決這個問題?謝謝~

問題解答

回答1:

主要是因為

p元素內容分類 Flow content, palpable content.允許的內容 Phrasing content.允許的父元素任何接受flow content的元素

i元素Content catergories Flow content, phrasing content, palpable content.允許量 phrasing content.

很顯然P元素的父元素應該是flow content類型的,然而i并不滿足條件,也就是說這是不符合規范的。解決辦法就是i直接換為p。

標簽: Python 編程
相關文章:
国产综合久久一区二区三区