如何更快地获得给定href的第一个元素

时间:2012-05-25 06:45:22

标签: python-2.7 lxml

我有一个工作示例,它使用给定的href生成html元素列表。但我只需要第一个,速度很重要,如何优化这段代码?

import lxml.html
input = """<div class="post" style="height: 36px; ">
some div text 
<a href="http://site.com/" target="_blank">Look here</a>, 
some div text also </div>
"""
root = lxml.html.fromstring(input)
el = root.xpath("//*[@href='http://site.com/']")[0]
el.text

2 个答案:

答案 0 :(得分:0)

您可以在xpath表达式中使用索引:(//*[@href='http://site.com/'])[1]

答案 1 :(得分:0)

确保它真正更快的唯一方法是衡量,衡量和衡量。 timeit module可以提供帮助。

回到你的问题,这个怎么样?

text = root.xpath('//*[@href='http://site.com/'][1]/text()')