Вы можете использовать CSS селектор .Top.Class.Name svg[class]
, а затем получить атрибут class
.
Обратите внимание, когда у вас есть пробелы в атрибуте class=
, тег имеет несколько классов. Итак, class="Top Class Name"
означает, что тег относится к классам Top
, Class
и Name
. То же самое для <svg class="My Class5 Cur(p)">
.
txt = '''
<li class="Top Class Name" dataid="60">
<a class="Name of Sub Class 1" href="www.abc.com" dataid="61">
<div class="Class2" dataid="62">
<div class="My Class3" dataid="63"><span dataid="64">This is correct</span></div>
<div class="My Class4" dataid="65">
<svg class="My Class5 Cur(p)" width="20" style="vertical-align:bottom;" height="26" viewBox="0 0 24 24" dataon="filled-circle" dataid="67"><path d="The Path" dataid="66"></path>
</svg>
</div>
</div>
</div>
</a>
</li>
'''
soup = BeautifulSoup(txt, 'html.parser')
svg = soup.select_one('.Top.Class.Name svg[class]')
print(svg['class'])
Печать:
['My', 'Class5', 'Cur(p)']
Подробнее о CSS селекторах здесь .