Есть строка вида
['8.07/8.12']
>>> page.xpath("./*//div[@class='currency_div']/div[@class='val'][1]/ul/li[3]/text()[1][substring-before(.,'/')]")
['8.07/8.12']
>>> page.xpath("./*//div[@class='currency_div']/div[@class='val'][1]/ul/li[3]/text()[1][substring-before(.,'/')]")
[]
In [1]: import lxml.html In [2]: content = '''<div class="val">8.07/8.12</div>''' In [3]: doc = lxml.html.fromstring(content) In [4]: doc.xpath('substring-before(//div[@class="val"],"/")') Out[4]: '8.07' In [5]: doc.xpath('//div[@class="val"]')[0].xpath('substring-before(.,"/")') Out[5]: '8.07'
reclosedevспасибо, работает
То, что находится в скобкахэто дополнительное условие выборки.[]
Чтобы получить сам текст, нужно вызывать примерно так:In [1]: import lxml.html In [2]: content = '''<div class="val">8.07/8.12</div>''' In [3]: doc = lxml.html.fromstring(content) In [4]: doc.xpath('substring-before(//div[@class="val"],"/")') Out[4]: '8.07' In [5]: doc.xpath('//div[@class="val"]')[0].xpath('substring-before(.,"/")') Out[5]: '8.07'