2010-12-06 6 views
0

Gibt es eine Möglichkeit, alle <option>s im folgenden HTML-Formular <select> in eine Python-Liste, so, ['a', 'b', 'c', 'd'] ?html Wählen Sie eine Option in eine Liste

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

Vielen Dank im Voraus.

Antwort

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 

ausgeben wird

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

Haftungsausschluss: Parsing HTML mit regulären Ausdrücken arbeiten nicht im allgemeinen Fall.

2

Sie könnten BeautifulSoup aussehen wollen, wenn Sie auch andere HTML-Daten analysieren wollen

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