BeautifulSoup对象支持使用CSS选择器查找标签。这些选择器是CSS语言中使用的指定HTML Tag样式的方式。

下面是一些例子:

  • p a — 在p标记中找到所有的a标签。
  • body p a — 在body标记内的p标记内查找所有a标签。
  • html body — 查找html标记内的body标签。
  • p.outer-text — 查找带有类是outer-text所有p标记。
  • p#first — 查找id为first的所有p标签。
  • body p.outer-text — 在body标记中查找类是outer-text的p标签。

使用CSS选择器查找标签,可以使用select方法:

import requests
from bs4 import BeautifulSoup

page = requests.get("https://kevinhwu.github.io/demo/python-scraping/simple2.html")
soup = BeautifulSoup(page.content, 'html.parser')

soup.select("div p")

输出

[<p class="inner-text first-item" id="first">
First paragraph.
</p>, <p class="inner-text">
Second paragraph.
</p>]

注意,上面的select方法返回一个BeautifulSoup对象列表,就像findfind_all一样。