2010-12-06 71 views
0

有没有什么办法可以在下面的HTML表格<select>中选择所有的<option>s到python列表中,如['a','b','c','d'] ?html select option into a list

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

非常感谢提前。

回答

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正则表达式并不在一般情况下工作。

2

你可能想看看BeautifulSoup如果你想解析其他HTML数据也

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')]