假设我们有以下HTML代码:
This is outer span.
This is inner span.
如果我们想要获取内部span元素(class="inner"),通常情况下,我们会使用find方法,例如:
from bs4 import BeautifulSoup
html = """
This is outer span.
This is inner span.
"""
soup = BeautifulSoup(html, "html.parser")
inner_span = soup.find("span", class_="inner")
但是,如果我们运行上述代码,将返回None,因为内部的span元素(class="inner")被嵌套在外部的span元素(class="outer")中。
解决这个问题的方法是使用CSS选择器,具体来说,是使用"span.outer span.inner"选择器,如下所示:
from bs4 import BeautifulSoup
html = """
This is outer span.
This is inner span.
"""
soup = BeautifulSoup(html, "html.parser")
inner_span = soup.select_one("span.outer span.inner")
这将返回内部span元素。注意:使用select_one而不是find,因为我们使用CSS选择器而不是类和其他属性。