2014-03-13 55 views
1
<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()而不是因爲標籤輸入是在源幾個地方,但我想通了該查找()只返回在源蟒蛇 - 爲第二occurence XPath語法

回答

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'] 
+0

再次感謝你@alecxe,將僅需9分鐘 – user3412816

+0

@ user3412816接受,還要檢查更新:考慮使用'@ name'而不是通過索引找到輸入。 – alecxe

+0

我已將我的代碼更改爲使用@name – user3412816