python - lxml.etree为什么会自动加上加上</i>?
问题描述
正在学习lxml,代码如下:
from lxml import etreetext = ’’’<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>标签那里会出错呢?请问怎么解决这个问题?谢谢~
问题解答
回答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。
相关文章:
1. nignx - docker内nginx 80端口被占用2. css - 图片的宽度发生变化而高度却没有相应变?3. dockerfile - 为什么docker容器启动不了?4. 垃圾回收 - java 如何手动回收对象5. mysql - 请问有innodb 引擎的表导入900w 的数据,用了快9个小时。有什么快速的方法吗。正常是多少小时一般。6. javascript - vue中input的blur影响了下拉的点击事件如何解决7. javascript - chart.js如何修改某个指定bar的颜色8. php - 注册验证邮箱失效后操作问题9. mysql - 一个sql的问题10. angular.js - 在ionic下,利用javascript导入百度地图,pc端可以显示,移动端无法显示

网公网安备