2012-01-26 4 views
2

Я получаю данные из веб-службы и его ответ мне данные в HTML данных ответа form.The я получаю это выпадающий:Получение конкретных данных из ответных данных с помощью питона

<span> 

     <select name="country" id="country" class="text " style="width:170px;"> 
         <option value="">-Select country-</option> 
           <option value="Russia" >Russia</option> 
           <option value="America" >America</option> 
           <option value="Spain" >Spain</option> 
           <option value="France" >France</option> 
           <option value="X - 15" >X - 15</option> 


     </select> 
</span> 

мне нужно дальнейший процесс по этим данным и получить значения параметров в списке python. Как я могу выбрать все названия стран и собрать их в список python?

+0

Возможный дубликат [Анализ HTML в Python] (http://stackoverflow.com/questions/717541/parsing-html-in-python) – DrTyrsa

+0

Если вы получаете ответ html, вам не нужны регулярные выражения, но анализатор xml/html. –

+0

Если вы планируете использовать регулярное выражение для синтаксического анализа HTML, * пожалуйста * прочитайте это: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

ответ

3

Отъезд beautiful soup.

В этом случае, вы можете сделать следующее если вы имели свой HTML блок в html варе в виде строки:

>>> import BeautifulSoup as bs 
>>> 
>>> html = bs.BeautifulSoup(html) 
>>> html.findAll('option') 

Для еще более синтаксического сахара, проверить soupselect.

+0

Спасибо mvanveen ....... я буду использовать beautifulSoup, когда мне придется разбирать больше данных HTML. – user1170793

+1

html.findAll ('option') вместо a.findAll ('option') – user1170793

+0

Приятный улов, извините за это! Ред. – mvanveen

0
import re 

pattern = r"<option value=\"(.*)\" >" 
val=re.findall(pattern,htmlCode) 

вала будет содержать список всех значений

Основываясь на вашем пример HTML кода, приведенное выше FindAll регулярного выражения должны сделать работу для вас, однако, если вы делаете много обширного HTML кода разбора затем обычно регулярное выражение не является хорошим вариантом. Но для простого случая, подобного вашему, это лучший вариант.

+0

Awesome Nitin ...... Спасибо – user1170793