在用xpath定位网页源码数据的时候怎么样才能
通过定位a标签来判断存在span标签下的价格是一个还是两个?
当他为一个的时候直接输出,当他为两个的时候输出字符串 “价格1~价格2”



在用xpath定位网页源码数据的时候怎么样才能
通过定位a标签来判断存在span标签下的价格是一个还是两个?
当他为一个的时候直接输出,当他为两个的时候输出字符串 “价格1~价格2”



尝试从上层节点进行选取,用text获取全部文本,然后选取拼接。
s = '''<span class="a-price" data-a-size="l" data-a-color="price"><span class="a-offscreen">¥516.35</span><span aria-hidden="true"><span class="a-price-symbol">¥</span><span class="a-price-whole">516<span class="a-price-decimal">.</span></span><span class="a-price-fraction">35</span></span></span>
<span aria-hidden="true" class="a-price-dash" data-a-size="l" data-a-color="price">-</span>
<span class="a-price" data-a-size="l" data-a-color="price"><span class="a-offscreen">¥535.67</span></span><span aria-hidden="true"><span class="a-price-symbol">¥</span><span class="a-price-whole">535<span class="a-price-decimal">.</span></span><span class="a-price-fraction">67</span></span></span>'''
from lxml import etree
html=etree.HTML(s)
sp = html.xpath('//span[@class="a-price"]//text()')
if len(sp)==1:
print(sp[0])
else:
print(sp[0]+'-'+sp[-1])
¥516.35-¥535.67