Lambda 表达式本质上就是一个函数,可以作为其他函数的变量使用;也就是说,一个函
数不是定义成f(x, y),而是定义成f(g(x), y),或f(g(x), h(x)) 的形式。
BeautifulSoup 允许我们把特定函数类型当作findAll 函数的参数。唯一的限制条件是这些
函数必须把一个标签作为参数且返回结果是布尔类型。BeautifulSoup 用这个函数来评估它
遇到的每个标签对象,最后把评估结果为“真”的标签保留,把其他标签剔除。
例如,下面的代码就是获取有两个属性的标签:
soup.findAll(lambda tag: len(tag.attrs) == 2)
这行代码会找出下面的标签:
<div class="body" id="content"></div>
<span style="color:red" class="title"></span>
如果你愿意多写一点儿代码,那么在BeautifulSoup 里用Lambda 表达式选择标签,将是正
则表达式的完美替代方案。