2010-12-06 21 views
0

Y at-il un moyen de sélectionner tous les <option>s dans le formulaire HTML suivant <select> dans une liste python, comme si, ['a', 'b', 'c', 'd'] ?html sélectionnez l'option dans une 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> 

Merci beaucoup à l'avance.

Répondre

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 

volonté sortie

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

Avertissement: Parsing HTML avec des expressions régulières ne fonctionne pas dans le cas général.

2

Vous voudrez peut-être regarder BeautifulSoup si vous voulez analyser d'autres données HTML aussi

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