我有以下html:

<div class="txt-block">
<h4 class="inline">Aspect Ratio:</h4> 2.35 : 1
</div>


我想从内容中获取值“ 2.35:1”。但是,当我尝试使用lxml时,它返回一个空字符串(我能够获取“纵横比”值,可能是因为它恰好位于标签之间)。

item.find('div').text


然后如何获得“ 2.35:1”值?使用etree.tostring可以获取完整的输出。

最佳答案

这称为元素的.tail

from lxml.html import fromstring

data = """
<div class="txt-block">
<h4 class="inline">Aspect Ratio:</h4> 2.35 : 1
</div>
"""

root = fromstring(data)
print root.xpath('//h4[@class="inline"]')[0].tail


打印2.35 : 1

或者,您可以获取h4元素的以下文本同级项:

root.xpath('//h4[@class="inline"]/following-sibling::text()')[0]


另外,由于要处理HTML数据,因此请确保使用lxml.html

关于python - 使用lxml获得值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28422432/

10-12 21:13