繁体   English   中英

使用lxml获得价值

[英]Get value using lxml

我有以下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

您还可以使用.text_content()而不是.text ,这将为您提供元素的全部文本内容( http://lxml.de/lxmlhtml.html)-

>>> item.find('div').text.text_content()
Aspect Ratio: 2.35 : 1

完整的陈述将是:

>>> title_detail.text_content().split('Aspect Ratio: ')[1].strip()
2.35 : 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM