如何使用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>
答案 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建议的那样,特别是如果你想要可靠地获取数据 因为使用正则表达式很容易在变化的情况下破坏 对数据。