获取使用Tag.find_all()找到的每个标记的value属性

时间:2012-01-27 01:00:44

标签: python beautifulsoup

我已经生成了一个列表,其中包含我的HTML文件的所有标签,名为'option'。但我无法获取标签内的值。

这是我的代码和数据:

>>> soup2 = soup.findAll('option')
>>> soup2

[
  <option value="ufs_munic">&nbsp;&nbsp;Por Município&nbsp;&nbsp;</option>,
  <option value="ext_paises">&nbsp;&nbsp;Por País&nbsp;&nbsp;</option>,
  ...
]

我希望在每个代码中option value=之后得到引用的值。

例如:

ufs_munic
ext_paises
5
6
7
8
9
...

2 个答案:

答案 0 :(得分:1)

使用列表理解,您可以使用get方法从选项中获取所有值:

>>> soup2 = [option.get('value') for option in soup.findAll('option')]
>>> soup2
['ufs_munic', 'ext_paises', '5', '6', '7', '8', '9', ...]

如果选项没有定义选项,您甚至可以传递默认值:

option.get('value', 'There is no value!')

答案 1 :(得分:0)

>>> for item in soup2:
...     print item['value']