<input name="utf8" type="hidden" value="✓" />
<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()只返回第一次出现来源
答案 0 :(得分:1)
使用find()
,传递xpath表达式,指定元素的整数索引:
from lxml.html import fromstring
html_data = """<input name="utf8" type="hidden" value="✓" />
<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']