一直都发现lambda函数非常好用,它可以用简洁的方式编写小函数,无需写冗长的过程就可以获取结果。干脆利落!
它允许我们定义一个匿名函数,在调用一次性的函数时非常有用。
最近整理了一些,lambda
函数结合BeautifulSoup
或者selenium 的库,来解析HTML,并提取任意标签下的元素的方法。
先定义一个html源码:
from bs4 import BeautifulSoup
# 假设这是你的HTML源码
html_doc = """
<html>
<head>
<title>The Dormouse's story</title>
</head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
</body>
</html>
"""
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html_doc, 'html.parser')
1. 提取节点下,任意含有href的内容
如果我们想要提取某个div节点下的所有 href 内容,而在不确定标签值,例如span
、p
、a
标签的时候,我们可以提取每个标签的href属性值,以获取所有的链接url
这里,我们就可以用lambda的方法: