将html选择框选项转换为列表

0 投票
2 回答
2489 浏览
提问于 2025-04-16 08:08

有没有办法把下面这个HTML表单中的所有<option>选项选出来,放到一个Python列表里,比如说,像这样,['a','b','c','d']?

<select name="sel">
   <option value="a">a</option>
   <option value="b">b</option>
   <option value="c">c</option>
   <option value="d">d</option>
</select>

非常感谢!

2 个回答

3

如果你想解析其他的HTML数据,可以考虑使用BeautifulSoup这个工具。

from BeautifulSoup import BeautifulSoup

text = '''<select name="sel">
   <option value="a">a</option>
   <option value="b">b</option>
   <option value="c">c</option>
   <option value="d">d</option>
</select>'''

soup = BeautifulSoup(text)

print [i.string for i in soup.findAll('option')]
5
import re
text = '''<select name="sel">
   <option value="a">a</option>
   <option value="b">b</option>
   <option value="c">c</option>
   <option value="d">d</option>
</select>'''
pattern = re.compile(r'<option value="(?P<val>.*?)">(?P=val)</option>')
handy_list = pattern.findall(text)
print handy_list

将会输出

['a', 'b', 'c', 'd']

免责声明:用正则表达式解析HTML在一般情况下是行不通的。

撰写回答