问题遇到的现象和发生背景
如图,我想获取景区等级,但是标红处没有对应的信息。
问题相关代码,请勿粘贴截图
level= htt.xpath('//span[@class="m_productcard_content_poitext"]/text()')
运行结果及报错内容
['5A', '4A', '4A', '4A', '4A', '4A', '4A']
我想要达到的结果
没有景区等级的位置由null或者其他字符替代。
level= htt.xpath('//span[@class="m_productcard_content_poitext"]/text()')
['5A', '4A', '4A', '4A', '4A', '4A', '4A']
没有景区等级的位置由null或者其他字符替代。
先获取所有父元素,再获取父元素中子元素
判断父元素中是否有子元素即可
参考
from lxml import etree
html = '''
<ul>
<li class="xxx">aaaaaaaaaa <span class="m_productcard_content_poitext">5A</span></li>
<li class="xxx">aaaaaaaaaa </li>
<li class="xxx">aaaaaaaaaa <span class="m_productcard_content_poitext">4A</span></li>
<li class="xxx">aaaaaaaaaa </li>
<li class="xxx">aaaaaaaaaa <span class="m_productcard_content_poitext">4A</span></li>
</ul>
'''
htt=etree.HTML(html)
level = []
li = htt.xpath('//li[@class="xxx"]')
for v in li:
d = v.xpath('./span[@class="m_productcard_content_poitext"]/text()')
if len(d)>0:
level.append(d[0])
else:
level.append("无")
print(level)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!