菜鸟笔记
提升您的技术认知

Beautiful Soup嵌套选择的方法

阅读 : 91

Beautiful Soup是Python的一个网页解析库,处理快捷; 支持多种解析器,功能强大。教程细致讲解Beautiful Soup的深入使用、节点选择器、CSS选择器、Beautiful Soup4的方法选择器等重要知识点,是学好爬虫的基础课程。

节点选择器——嵌套选择的方法

学习目标

  1. 掌握节点选择器嵌套选择的方法

1. 嵌套选择的方法

我们可以使用soup.tag获取bs4.element.Tag类型的节点,并获取他们的信息。

<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>

如果提取到的节点中还嵌套这其他子节点

<head><title>The Dormouse's story</title></head>

那我们就可以通过下面的操作方式来获取子节点的信息。

格式:soup.tag.tag

返回值:节点元素

示例:

html = '''
<div class="panel">
  <div class="panel-heading">
      <h4>Hello</h4>
  </div>
  
  <div class="panel-body">
      <ul class="list" id="list-1">
          <li class="element"> Foo</li>
          <li class="element">Bar</li>
          <li class="element">]ay</li>
      </ul>
      
      <ul class="list list-small" id="list-2">
          <li class="element"> Foo</li>
          <li class="element">Bar</li>
      </ul>
  </div>
</div>

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_str, 'lxml')
# 获取title
print(soup.head.title)
# 打印获取到的title类型
print(type(soup.head.title))
# 获取title的信息
print(soup.head.title.string)

# 输出结果
<title>The Dormouse's story</title>
<class 'bs4.element.Tag'>
The Dormouse's story

2. 总结

节点选择器 嵌套选择的方法:

  • soup.tag.tag
    • 在Tag类型的基础上再次选择得到的依然是Tag类型,每次返回的结果相同,就可以进行嵌套选择了