正在學習lxml,程式碼如下:
from lxml import etree
text = '''
<i class="cell maincell">
<p class="title">
<a target="_blank" href="https://itjuzi.com/company/60321">
<span>洋鼹鼠</span>
</a>
</p>
<p>
<span class="tags t-small c-gray-aset">
<a href="https://itjuzi.com/investevents?scope=145">电子商务</a>
</span>
<span class="loca c-gray-aset t-small">
<a href="https://itjuzi.com/investevents?prov=天津">天津</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" href="https://itjuzi.com/company/60321">
<span>洋鼹鼠</span>
</a>
</p>
<p>
<span class="tags t-small c-gray-aset">
<a href="https://itjuzi.com/investevents?scope=145">电子商务</a>
</span>
<span class="loca c-gray-aset t-small">
<a href="https://itjuzi.com/investevents?prov=天津">天津</a>
</span>
</p>
</body></html>
主要不懂為什麼<i>
標籤那裡會出錯呢?請問怎麼解決這個問題?謝謝~
PHP中文网2017-06-22 11:54:40
主要是因為
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。