将html选择框选项转换为列表
有没有办法把下面这个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在一般情况下是行不通的。