import BeautifulSoup
doc = '''<html><head><title>Page title</title></head><body><p id="firstpara" align="center">This is <i>paragraph</i> <a onclick="">one</a>.<p id="secondpara" align="blah">This is <i>paragraph</i> <b>two</b>.</html>'''
soup = BeautifulSoup.BeautifulSoup(doc)
for tag in soup.recursiveChildGenerator():
if isinstance(tag,BeautifulSoup.Tag) and tag.name in ('a','b','i'):
print(tag)
выходы
<i>paragraph</i>
<a onclick="">one</a>
<i>paragraph</i>
<b>two</b>
Если вам просто нужно текстовое содержимое, вы можете изменить print(tag)
на print(tag.string)
.
Если вы хотите удалить атрибут типа onclick=""
из тега a
, вы можете сделать это:
if isinstance(tag,BeautifulSoup.Tag) and tag.name in ('a','b','i'):
if tag.name=='a':
del tag['onclick']
print(tag)