在HTML页面中查找选定的选项

时间:2011-07-24 06:48:38

标签: python

如何使用python在HTML页面中找到所选选项?

e.g。在以下示例中,如何找到“BOB”字符串?

<select id="worker" name="worker">
<option value="Eve">EVE</option>
<option value="Bob" selected>BOB</option>
<option value="Alice">ALICE</option>
</select>

2 个答案:

答案 0 :(得分:1)

让我们假设您在python脚本中,并将所有HTML文档放在变量html中。最直接的方式是这样的:

from xml.dom.minidom import parseString
dom = parseString(html)
for element in dom.getElementsByTagName('option'):
    if element.getAttribute('selected'):
       # process selected element

但是您的特定html格式不正确(挂起selected属性),并且无法通过此代码段进行解析:(

我担心你不想解析html文档,而是处理表单提交结果:)

答案 1 :(得分:0)

如果是一次性工作,或者您的所有XML文本都遵循相同的格式 可以像这样使用正则表达式:

import re
text = yourtext
matches = re.findall(r'\bselected>([\w]+)<', text,re.MULTILINE )
matches[0] #should return 'Bob'

最好将文本更改为正确的XML然后解析它 正如@spacediver建议的那样,特别是如果你想要可靠地获取数据 因为使用正则表达式很容易在变化的情况下破坏 对数据。