当使用 BeautifulSoup4 解析 HTML 时,如果涉及到嵌套的标签,就会出现导航问题。例如,当使用 find() 或 select() 方法时,它们只返回第一个匹配的标签,而不是嵌套标签中的所有匹配项。
为了解决这个问题,可以使用 find_all() 方法来获取所有匹配项。此外,还可以使用 CSS 选择器语法来筛选出嵌套标签中的项。
下面是一个示例代码,演示如何在 HTML 文档中遍历嵌套标签并获取所有匹配项:
from bs4 import BeautifulSoup
html_doc = """
"""
soup = BeautifulSoup(html_doc, 'html.parser')
# 通过 select() 方法获取所有导航链接
nav_links = soup.select('ul.nav li a')
for link in nav_links:
print(link.attrs['href'], link.string)
# 通过 find_all() 方法获取所有博客链接
blog_links = soup.find_all('a', href='/blog')
for link in blog_links:
print(link.attrs['href'], link.string)
在上面的示例中,我们