Ваш селектор недействителен
soup.findAll("a.data-permalink")
его следует использовать для метода .select()
, но все равно он недействителен, поскольку это означает, что выберите <a>
с классом, а не атрибутом.
чтобы соответствовать всему, используйте *
для select()
.select('*[data-permalink]')
или True
при использовании findAll()
.findAll(True, attrs={'data-permalink' : True})
пример
from bs4 import BeautifulSoup
html = '''<a data-permalink="a">link</a>
<b>bold</b>
<i data-permalink="i">italic</i>'''
soup= BeautifulSoup(html, 'html.parser')
permalink = soup.select('*[data-permalink]')
# or
# permalink = soup.findAll(True, attrs={'data-permalink' : True})
print(permalink)
Результатыэлемент <b>
пропускается
[<a data-permalink="a">link</a>, <i data-permalink="i">italic</i>]