lxml.html的value属性

5 投票
2 回答
958 浏览
提问于 2025-04-17 22:46

这是我的代码:

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 个回答

1

这可以直接通过XPath来完成——你不需要修改你周围的Python代码。

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

一般来说,使用 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

撰写回答