python - 第二次出现的xPath语法

时间:2014-03-13 02:28:03

标签: python xpath lxml

<input name="utf8" type="hidden" value="&#x2713;" />
<input name="ohboy" type="hidden"  value="I_WANT_THIS" />
<label for="user_email">Email</label>
<input class="form-control" id="user_email" name="user[email]" size="30" type="email" value=""      />

我有点卡在这里,我原本打算使用find()而不是xpath()因为标签输入在源中的几个地方,但我发现find()只返回第一次出现来源

1 个答案:

答案 0 :(得分:1)

使用find(),传递xpath表达式,指定元素的整数索引:

from lxml.html import fromstring


html_data = """<input name="utf8" type="hidden" value="&#x2713;" />
<input name="ohboy" type="hidden"  value="I_WANT_THIS" />
<label for="user_email">Email</label>
<input class="form-control" id="user_email" name="user[email]" size="30" type="email" value=""      />"""

tree = fromstring(html_data)
print tree.find('.//input[2]').attrib['value']

打印:

I_WANT_THIS

但是,更好(更干净)的是通过name属性找到输入:

print tree.find('.//input[@name="ohboy"]').attrib['value']