И снова, просто чтобы показать, как можно сделать это с помощью pyparsing:
html = r'''
<select name="somelist">
<option value="234234234239393">Some Text</option>
<option value="42">Other text</option>
</select>
'''
from pyparsing import makeHTMLTags, Group, SkipTo, withAttribute, OneOrMore
select,selectEnd = makeHTMLTags("SELECT")
option,optionEnd = makeHTMLTags("OPTION")
optionEntry = Group(option("option") +
SkipTo(optionEnd)("menutext") +
optionEnd)
somelistSelect = (select.setParseAction(withAttribute(name="somelist")) +
OneOrMore(optionEntry)("options") +
selectEnd)
t,_,_ = somelistSelect.scanString(html).next()
for op in t.options:
print op.menutext, '->', op.option.value
печатает:
Some Text -> 234234234239393
Other text -> 42