使用Tag.find_all()获取每个标签的值属性

0 投票
2 回答
1429 浏览
提问于 2025-04-17 11:11

我生成了一个包含我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

在编程中,有时候我们需要处理一些数据,而这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们通常需要把它们转换成程序能处理的格式。

比如说,如果你从一个网页上获取了一些信息,这些信息可能是以文本的形式存在的。为了让程序能够使用这些信息,我们需要把它们转换成程序能理解的结构,比如数组或者对象。

这个过程叫做“解析”,也就是把复杂的东西变得简单易懂。解析之后,我们就可以对这些数据进行各种操作,比如计算、显示或者存储。

总之,解析是让程序能够理解和使用数据的一个重要步骤。

>>> for item in soup2:
...     print item['value']
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!')

撰写回答