BeautifulSoup позволяет использовать регулярное выражение в качестве фильтра .На вашем сайте имена классов тега a
содержат -ab
.
Вы можете использовать
soup.find_all('a',class_=re.compile("-ab"))
Но в некоторых случаях в именах классов не должно быть общих терминов, вы можете проверить, можете ли вы попытаться использовать методы в взад и вперед , Переход в сторону , Переход вниз и Переход вверх по разделам документации, чтобы каким-то образом уникальным образом идентифицировать необходимый элемент, не полагаясь на классname.
Возвращаясь к вашему вопросу
html="""
<a class="G-ab" href="thewebsite.com"><div class="G-l"><div class="G-m">Product Name</div></div><div class="G-k"><div>S$230</div><div>Product Description</div><div>Used</div></div></a>
<a class="K-ab" href="thewebsite.com"><div class="K-l"><div class="K-m">Product Name</div></div><div class="K-k"><div>S$230</div><div>Product Description</div><div>Used</div></div></a>
"""
from bs4 import BeautifulSoup
import re
soup=BeautifulSoup(html,'html.parser')
a_links=soup.find_all('a',class_=re.compile("-ab"))
print(a_links)
Выходы:
[<a class="G-ab" href="thewebsite.com"><div class="G-l"><div class="G-m">Product Name</div></div><div class="G-k"><div>S$230</div><div>Product Description</div><div>Used</div></div></a>, <a class="K-ab" href="thewebsite.com"><div class="K-l"><div class="K-m">Product Name</div></div><div class="K-k"><div>S$230</div><div>Product Description</div><div>Used</div></div></a>]
Были выбраны оба тега a
с разными именами классов, содержащие -ab
.