lxml.html的value属性

时间:2014-03-18 03:26:49

标签: python xpath lxml

这是我的代码:

from lxml.html import fromstring
#code
print fromstring(s).xpath('/html/body/div[3]/div/div[2]/div/form/input[4]')

输出为[<InputElement 2946d20 name='question' type='hidden'>]

如何输出值?这个的任何属性? 谢谢。

2 个答案:

答案 0 :(得分:5)

通常使用lxml,您可以直接通过.value属性访问元素的值:

>>> from lxml.html import fromstring
>>> s = """<input type="hidden" name="question" value="1234">"""
>>> doc = fromstring(s)
>>> doc.value
'1234'

在您的情况下,您还需要从XPath查询中访问结果列表的第一个元素:

print fromstring(s).xpath('/html/body/div[3]/div/div[2]/div/form/input[4]')[0].value

答案 1 :(得分:1)

这可以直接从XPath完成 - 无需更改周围的Python。

print fromstring(s).xpath('/html/body/div[3]/div/div[2]/div/form/input[4]/text()')