通过python从响应数据中检索特定数据

时间:2012-01-26 08:06:03

标签: python regex string

我正在接收来自网络服务的数据及其以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 list中获取选项值。如何选择所有国家/地区名称并将它们收集到python列表中?

2 个答案:

答案 0 :(得分:3)

查看beautiful soup

在这种情况下,假设您将html var中的html块作为字符串,则可以执行以下操作:

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

要获得更多的语法糖,请查看soupselect

答案 1 :(得分:0)

import re

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

val将包含所有值的列表

基于你的示例html代码,上面的正则表达式findall应该为你做的工作,但是如果你做了很多广泛的html代码解析,那么通常正则表达式不是一个好的选择。但对于像你这样的简单案例,这是最好的选择。