Извлечение определенных данных из данных ответов через python - PullRequest
2 голосов
/ 26 января 2012

Я получаю данные от веб-службы и отвечаю мне данными в виде html. Данные ответа, которые я получаю, - это раскрывающийся список:

<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?

Ответы [ 2 ]

3 голосов
/ 26 января 2012

Проверьте красивый суп .

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

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

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

0 голосов
/ 26 января 2012
import re

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...