findよりselectのほうがいろいろ使いやすいので
忘れないようにメモ
練習コード
HTML
<div id="a">
<div id="b">
<p class="hello">こんにちは</p>
</div>
<p class="morning">おはよう</p>
<p class="night">おやすみ</p>
</div>
python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "lxml")
#前方一致
print(soup.select('p[class^="he"]'))
#後方一致
print(soup.select('p[class$="ing"]'))
#部分一致
print(soup.select('p[class*="ig"]'))
#直下の子要素のみ
print(soup.select('#a>p'))
#配下の要素
print(soup.select('#a p'))
#以降の要素
print(soup.select('#b~p'))
#隣接の要素
print(soup.select('#b+p'))
出力
[<p class="hello">こんにちは</p>]
[<p class="morning">おはよう</p>]
[<p class="night">おやすみ</p>]
[<p class="morning">おはよう</p>, <p class="night">おやすみ</p>]
[<p class="hello">こんにちは</p>, <p class="morning">おはよう</p>, <p class="night">おやすみ</p>]
[<p class="morning">おはよう</p>, <p class="night">おやすみ</p>]
[<p class="morning">おはよう</p>]